AWS S3 php api:文件上传后如何获取URL?

时间:2013-08-27 07:03:15

标签: php amazon-web-services amazon-s3

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

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

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

  1. 如何在文件上传成功后获取网址。
  2. 感谢。

3 个答案:

答案 0 :(得分:13)

在响应中返回。请参阅API docs for putObject

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

$url = $result['ObjectURL'];

您还可以使用getObjectUrl()方法获取网址。

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

答案 1 :(得分:2)

返回的结果是Guzzle \ Service \ Resource \ Model的实例。

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

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

$url = $result->get('ObjectUrl');

答案 2 :(得分:1)

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

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

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