繁体   English   中英

AWS:仅将S3存储桶附加模式

[英]AWS: Append only mode for S3 bucket

语境

我想让一台机器每小时将文件dump.rdb上传到s3 / blahblahblah / YEAR-MONTH-DAY-HOUR.rdb。

因此,我需要这台机器能够将新文件上传到S3。

但是,我不希望本机具有(1)删除现有文件或(2)覆盖现有文件的功能。

从某种意义上讲,它只能“追加”-只能添加新对象。

题:

有没有办法像这样配置S3设置?

谢谢!

我还不能发表评论,因此这里是对@Viccari答案的完善...

答案是误导性的,因为它只解决您要求中的第一,而不是第二。 实际上,尽管可以启用版本控制,但是似乎无法使用这两种方法来覆盖现有文件。 请参阅此处: 用于只读和一次写入访问的Amazon S3 ACL

因为您在文件名中添加了时间戳,所以您或多或少地解决了该问题。 (在文件名中将每个文件的“版本”编码为时间戳的其他方案也是如此:时间戳,UUID,哈希)。但是,请注意,您并没有受到真正的保护。 您的代码中的错误,或同一小时内两次上传,将导致文件被覆盖。

对的,这是可能的。
有两种向存储桶及其内容添加权限的方法: 存储桶策略存储桶ACL 您可以使用存储桶策略来实现所需的功能。 另一方面,存储桶ACL不允许您在不授予“删除”权限的情况下授予“创建”权限。

一桶政策:
您可以创建存储桶策略(请参见此处的一些常见示例),例如,允许特定的IP地址具有特定的权限。
例如,您可以允许: s3:PutObject而不允许s3:DeleteObject
可以在此处找到有关存储桶策略中S3操作的更多信息

2档ACL:
使用存储桶ACL,您只能授予完整的“写入”权限,即,如果给定的用户能够添加文件,则他也能够删除文件。

这是不可能的! S3是键/值存储,因此固有地不仅支持附加。 S3的PUT / cp命令始终可以覆盖文件。 通过在存储分区上启用版本控制,您仍然可以安全地确保上传文件的帐户受到损害。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM