如何从URL获取Amazon AWS S3存储桶中的文件?

时间:2016-11-11 06:49:30

标签: amazon-web-services amazon-s3 xamarin.forms

我创建了一个Amazon S3存储桶,并且我已经从手机应用程序上传了文件/图像。我要展示包含大量图片的帖子,图片会自动绑定图片网址。但我不知道如何获取URL,因为图像不应公开直接显示。如何在我的应用中显示它们?

$cmd = $client->getCommand('GetObject',[
    'Bucket' => 'myinstaclassbucket',
'Key' => 'e12e682c-936d-4a97-a049-6f104dd7c904.jpg',
    ]);
$request = $client->createPresignedRequest($cmd,$timetoexpire);
$presignedurl = (string) $request->getUri();
echo $presignedurl;

1 个答案:

答案 0 :(得分:0)

首先,您需要使用AWS PHP SDK。还要确保您具有有效的Access密钥和密钥。

比一切都顺利。

$bucket = 'some-bucket';
$key = 'mainFolder/subFolder/file.xx';

// Init client
$client = new S3Client([
    'key' => '*YOUR ACCESS KEY*',
    'secret' => '*YOUR SECRET KEY*',
]);

if ($client->doesObjectExists($bucket, $key)) {
    // If passing `expire` time you will get signed URL
    $url = $client->getObjectUrl($bucket, $key, time() + (60 * 60 * 2));
} else {
    $url = null;
}