我需要在eu-central-1中过期的桶的下载链接。
使用$s3->getObjectUrl($bucket, $filename, '+5 minutes');
SDK-PHP时,我只会获得未查询的URL,例如http://.../file.txt,而没有查询字符串。
完整的代码:
require 'vendor/autoload.php';
use Aws\S3\S3Client;
$client = S3Client::factory([
'version' => 'latest',
'region' => 'eu-central-1',
'signature' => 'v4',
'credentials' => [
'key' => 'xxxxx',
'secret' => 'xxxxx'
]
]);
$plainUrl = $client->getObjectUrl('mybucket', 'data.txt');
// > https://my-bucket.s3.amazonaws.com/data.txt
$signedUrl = $client->getObjectUrl('mybucket', 'data.txt', '+10 minutes');
// > https://my-bucket.s3.amazonaws.com/data.txt
不知道为什么
啊,getObjectUrl
不再有第三个参数。这有效:
$cmd = $client->getCommand('GetObject', [
'Bucket' => $bucket,
'Key' => 'test1G.dat'
]);
$request = $client->createPresignedRequest($cmd, '+20 minutes');
$presignedUrl = (string) $request->getUri();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句