AWS S3 php api:如何在文件上传后获取url


AWS S3 php api : How to get url after file upload?

我使用了aws-sdk(https://github.com/aws/aws-sdk-php)。

代码

$result = $client->putObject(array(
        'Bucket' => $bucket,
        'Key'    => $key,
        'Body'   => $file,
        'ACL'    => 'public-read',
));

它运行良好,但我有一个问题:

  1. 如何在文件上传成功后获取url

谢谢。

它在响应中返回。有关putObject,请参阅API文档。

$result = $client->putObject(array(
    'Bucket' => $bucket,
    'Key'    => $key,
    'Body'   => $file,
    'ACL'    => 'public-read',
));
$url = $result['ObjectURL'];

您也可以使用getObjectUrl()方法来获取URL。

$url = $client->getObjectUrl($bucket, $key);

返回的结果是Guzzle''Service''Resource''Model的一个实例。

要获取url,只需使用该类提供的get方法。

$result = $client->putObject(array(
    'Bucket' => $bucket,
    'Key'    => $key,
    'Body'   => $file,
    'ACL'    => 'public-read',
));
$url = $result->get('ObjectURL');

对象URL在函数调用中返回的$result变量中可用。

要访问对象URL,请执行以下操作:

$result = $client->putObject(array(
    'Bucket' => $bucket,
    'Key'    => $key,
    'Body'   => $file,
    'ACL'    => 'public-read',
));
$data=$result->toArray();
$object_url=$data['ObjectURL'];