我正在尝试下载私有S3对象并将其存储在网站服务器上
这是我正在尝试的
$s3 = new S3Client([
'version' => 'latest',
'region' => 'ap-south-1',
'credentials' => array(
'key' => '*****',
'secret' => '*******'
)
]);
$command = $s3->getCommand('GetObject', array(
'Bucket' => 'bucket_name',
'Key' => 'object_name_in_s3'
'ResponseContentDisposition' => 'attachment; filename="'.$my_file_name.'"'
));
$signedUrl = $command->createPresignedUrl('+15 minutes');
echo $signedUrl;
如何在服务器上保存这些文件
答案 0 :(得分:0)
来自Get an Object Using the AWS SDK for PHP:
use Aws\S3\S3Client;
$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';
$filepath = '*** Your File Path ***';
// Instantiate the client.
$s3 = S3Client::factory();
// Save object to a file.
$result = $s3->getObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SaveAs' => $filepath
));
如果您只想从命令行(而不是应用程序)下载文件,则可以使用AWS Command-Line Interface (CLI) - 它具有aws s3 cp
命令。
您的代码中的Pre-signed URL可用于授予对存储在Amazon S3存储桶中的私有对象的限时访问权限。通常,您的应用程序会生成URL并将其包含在网页中,供用户单击并下载该对象。无需在服务器端使用它,因为服务器将具有授权访问Amazon S3中的内容的凭据。