【问题标题】:Uploading and Downloading an encrypted object上传和下载加密对象
【发布时间】:2021-05-04 20:18:54
【问题描述】:

我是 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。
  • 嘿@jarmod 就是这样,但是现在,如果我从对象中获取 url,我无法下载它,因为它是加密的。你知道我怎样才能下载加密的对象吗?谢谢...
  • 您应该添加用于获取对象 URL 的代码以及您尝试下载对象的方式。
  • 好的 @jarmod 给我 2 分钟,并用代码更新问题以检索“下载”链接。无论如何,非常感谢您留在这里并回答我的愚蠢问题,感谢像您这样的人:)
  • 我已经用我用来检索存储对象的 url 的简单代码进行了编辑。 @jarmod

标签: php amazon-web-services amazon-s3 sdk


【解决方案1】:

快速总结问题和解决方案,以便可以接受此答案:

  1. putObject 调用缺少 Key,这是 S3 对象键
  2. getObjectUrl 调用包括 $folderUser,它应该是 S3 对象键
  3. 为了能够使用getObjectUrl 返回的 URL,对象(或存储桶)必须是公开的
  4. 如果您不希望对象公开,请改为创建并共享 pre-signed URL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多