上传和下载加密对象
Uploading and Downloading an encrypted object
我是 AWS 服务的新手,我正在努力解决这个问题:
我有一个代码可以让我上传和下载存储桶中的对象,但是当我尝试使用 AWS S3 SSE-KMS(默认选项) 加密存储桶时,它似乎确实如此不工作。
目前我有这个作为我的客户:
$s3Client = new Aws\S3\S3Client([
'credentials' => $credentials,
'region' => 'eu-west-1',
'version' => 'latest',
]);
//Upload an object while using the Server Side Encryption:
$result = $s3->putObject([
'Bucket' => $bucket,
'SourceFile' => $_FILES['file']['tmp_name'], //Via a input type submit. (PHP Form)
'ServerSideEncryption' => 'AES256',
]);
通过这些设置,我应该能够将 putObject 放入我的 s3 加密存储桶中,但是当我执行订单 (putObject) 时,页面一直在等待,无法完成请求。
我在这里缺少什么?我很乐意听取别人的建议。
很棒的社区!
编辑 1:
要上传由 ssk-kms 密钥加密的对象,请使用
//Upload an object while using the Server Side Encryption:
$result = $s3->putObject([
'Bucket' => $bucket,
'Key' => $key,
'SourceFile' => $_FILES['file']['tmp_name'], //Via a input type submit. (PHP Form)
'ServerSideEncryption' => 'AES256',
]);
正在尝试使用 getObjectUrl
方法检索加密对象:
echo $url = $s3->getObjectUrl($bucket, $folderUser);
但它检索到一个 XML 像,
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>1iejr93i2u5ka00</RequestId>
<HostId>fn3hhuFGYjkQI/sCeQVddddd631d213i21jidfeoihga45146363das40E=</HostId>
</Error>
快速总结问题和解决方案以便接受此答案:
- 缺少
putObject
调用 Key
,这是 S3 对象键
- 包含
getObjectUrl
调用 $folderUser
,它应该是 S3 对象键
- 要能够使用
getObjectUrl
返回的 URL,对象(或存储桶)必须是 public
- 如果您不希望该对象成为 public,请改为创建并共享一个 pre-signed URL
我是 AWS 服务的新手,我正在努力解决这个问题: 我有一个代码可以让我上传和下载存储桶中的对象,但是当我尝试使用 AWS S3 SSE-KMS(默认选项) 加密存储桶时,它似乎确实如此不工作。
目前我有这个作为我的客户:
$s3Client = new Aws\S3\S3Client([
'credentials' => $credentials,
'region' => 'eu-west-1',
'version' => 'latest',
]);
//Upload an object while using the Server Side Encryption:
$result = $s3->putObject([
'Bucket' => $bucket,
'SourceFile' => $_FILES['file']['tmp_name'], //Via a input type submit. (PHP Form)
'ServerSideEncryption' => 'AES256',
]);
通过这些设置,我应该能够将 putObject 放入我的 s3 加密存储桶中,但是当我执行订单 (putObject) 时,页面一直在等待,无法完成请求。 我在这里缺少什么?我很乐意听取别人的建议。
很棒的社区!
编辑 1: 要上传由 ssk-kms 密钥加密的对象,请使用
//Upload an object while using the Server Side Encryption:
$result = $s3->putObject([
'Bucket' => $bucket,
'Key' => $key,
'SourceFile' => $_FILES['file']['tmp_name'], //Via a input type submit. (PHP Form)
'ServerSideEncryption' => 'AES256',
]);
正在尝试使用 getObjectUrl
方法检索加密对象:
echo $url = $s3->getObjectUrl($bucket, $folderUser);
但它检索到一个 XML 像,
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>1iejr93i2u5ka00</RequestId>
<HostId>fn3hhuFGYjkQI/sCeQVddddd631d213i21jidfeoihga45146363das40E=</HostId>
</Error>
快速总结问题和解决方案以便接受此答案:
- 缺少
putObject
调用Key
,这是 S3 对象键 - 包含
getObjectUrl
调用$folderUser
,它应该是 S3 对象键 - 要能够使用
getObjectUrl
返回的 URL,对象(或存储桶)必须是 public - 如果您不希望该对象成为 public,请改为创建并共享一个 pre-signed URL