Rob*_*god 16 file-permissions amazon-s3 amazon-web-services
我有一组视频文件从一个AWS Bucket从另一个帐户复制到我自己的存储桶中的帐户.
我现在遇到的问题是,当我尝试将所有文件公开时,我收到了拒绝访问错误的所有文件.
具体来说,我登录到我的AWS账户,进入S3,深入查看文件夹结构,找到其中一个视频文件.
当我查看此特定文件时,文件上的权限选项卡不会显示分配给任何人的任何权限.未分配任何用户,组或系统权限.
在权限选项卡的底部,我看到一个小框,显示"错误:访问被拒绝".我无法改变文件的任何内容.我无法添加元数据.我无法将用户添加到该文件中.我无法将文件设为Public.
有没有办法让我可以控制这些文件,以便我可以公开它们?有超过15,000个文件/大约60GB的文件.我想避免下载和重新上传所有文件.
在这里的一些帮助和建议下,我尝试了以下内容.我在我的桶中创建了一个名为"media"的新文件夹.
我试过这个命令:
aws s3 cp s3://mybucket/2014/09/17/thumb.jpg s3://mybucket/media --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=my_aws_account_email_address
Run Code Online (Sandbox Code Playgroud)
调用HeadObject操作时收到致命错误403:禁止.
Joh*_*ein 26
一个非常有趣的难题!幸运的是,有一个解决方案.
首先,回顾一下:
我设法重现了这一点,并确认帐户B中的用户无法访问该文件 - 甚至不是帐户B中的root用户!
幸运的是,事情可以修复.将aws s3 cp在命令AWS命令行界面(CLI)当复制到相同的名称可以更新文件的权限.但是,要触发此操作,您还必须更新其他内容,否则会出现此错误:
此复制请求是非法的,因为它试图将对象复制到自身而不更改对象的元数据,存储类,网站重定向位置或加密属性.
因此,可以使用以下命令更新权限:
aws s3 cp s3://my-bucket/ s3://my-bucket/ --recursive --acl bucket-owner-full-control --metadata "One=Two"
Run Code Online (Sandbox Code Playgroud)
--acl bucket-owner-full-control 将授予帐户B的权限,以便您能够正常使用这些对象最终结果:你可以使用一个水桶!
| 归档时间: |
|
| 查看次数: |
13937 次 |
| 最近记录: |