php - 如何授予多个用户访问单个 Amazon S3 账户的权限并确定谁添加了文件?

标签 php amazon-s3 amazon-web-services amazon-iam

我有一个包含 3 个存储桶的 AWS S3 帐户。我需要能够为新用户生成访问代码,以便他们可以访问存储桶并添加/删除文件(最好只有他们自己的,但不是交易破坏者)。

我已经设法使用 IAM 授予新用户访问权限。但是,当我读取上传对象的元数据时(在 PHP 中使用 AWS 开发工具包),所有者作为主 AWS 帐户返回。

我已经阅读了多页文档,但似乎找不到与确定文件所有者(或上传者)是谁相关的任何内容。

任何建议或方向都非常感谢!

谢谢。

最佳答案

如果您唯一的问题是找到上传文件的所有者。

您可以将所有者信息作为上传文件的元数据传递。
查询 http://docs.amazonwebservices.com/AmazonS3/latest/dev/UsingMetadata.html

在上传时在 php 代码中:

// Instantiate the class.
$s3 = new AmazonS3();

$response = $s3->create_object(
$bucket,
$keyname2,
array(
   'fileUpload'  => $filePath,
   'acl'         => AmazonS3::ACL_PUBLIC,
   'contentType' => 'text/plain',
   'storage'     => AmazonS3::STORAGE_REDUCED,
   'headers'     => array( // raw headers
                      'Cache-Control'    => 'max-age',
                      'Content-Encoding' => 'gzip',
                      'Content-Language' => 'en-US',
                      'Expires'       => 'Thu, 01 Dec 1994 16:00:00 GMT',
      ),
     'meta'     => array(
                     'uploadedBy' => 'user1',
     ) )
);
print_r($response);

检查 php api 以获取更多信息。

关于php - 如何授予多个用户访问单个 Amazon S3 账户的权限并确定谁添加了文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622192/

相关文章:

php - 我正在寻找一种安全地将字符串插入数据库的方法?

apache-spark - 如何阻止 Spark 结构化流每次列出 S3 存储桶中的所有文件

php - AWS OpsWorks - Linux 驱动器到 S3 存储桶

javascript - Promise.all() - 拒绝 ID 2 - 未接收数据

php - 带有 4 个表的 INNER JOIN

php - 通知 Ajax/Javascript 后台 PHP 已完成

PHP 持久替换我的帖子值末尾的空格

amazon-web-services - AWS EC2 用户数据脚本未按预期工作

amazon-web-services - 由 s3 透明支持的 EMR hdfs

amazon-web-services - Cloudflare HTTPS 子域到 Cloudfront/S3-bucket 给出 403