2016-11-11 309 views
0

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

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

您需要从这里https://aws.amazon.com/documentation/的S3Client使用密钥和访问密钥来生成URL。我可以提供示例,但它会在PHP中。 – Justinas

+0

谢谢,如果你能给我一个PHP例子,这将是非常好的,因为这个服务是用PHP开发的。感谢Justinas :) – vishgarg

回答

0

所有你需要使用AWS PHP SDK第一。还要确保你有有效的访问密钥和密钥。

比一切都很简单。

$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; 
} 
相关问题