生成预签名URL
优质
小牛编辑
135浏览
2023-12-01
如果你想把自己的资源发放给第三方用户访问,但是又不想开放Bucket的读权限,可以通过生成预签名URL的形式提供给用户一个临时的访问URL。在生成URL时,你可以指定URL过期的时间,从而限制用户长时间访问。
生成预签名URL来获取Object
<?php $url = $client->generatePresignedUrl(array( 'Bucket' => 'your-bucket-name', 'Key' => 'your-object-key', 'Expires' => new \DateTime("+5 minutes"), )); echo $url;
上面代码针对Object生成了预签名的URL,用户可以直接使用URL来下载指定Object。 generatePresignedUrl 要求传入 Expires 参数来指定URL的过期时间,在 Expires 指定的时间之前URL都是有效的。上面代码中,我们指明了URL过期时间为5分钟。
生成预签名URL来上传Object
SDK还支持签名URL来进行Object的上传操作:
<?php $url = $client->generatePresignedUrl(array( 'Bucket' => 'your-bucket-name', 'Key' => 'your-object-key', 'Expires' => new \DateTime("+5 minutes"), 'Method' => 'PUT', )); echo $url;
在上面的代码中,我们新加了一个参数 PUT 来指明签名的是一个上传操作(PUT为上传Object的HTTP方法)。在过期时间内我们可以使用返回的URL来上传Object。