ruby aws sdk s3 删除文件夹中的对象
ruby aws sdk s3 deletion of objects in folders
我正在使用 aws sdk 从存储桶中删除一个(或多个)对象,问题是不存在的键仍然被视为已成功删除,SDK 不应该引发错误钥匙不存在?
另一个问题是,与确实存在的键相对应的对象没有被删除,而是返回为已成功删除。
编辑:
第二个问题似乎只是当要删除的对象在文件夹内时,在根目录中它被删除了。
原来你不能在密钥的开头有'/',我没有意识到,不确定为什么它在那里但它是把钥匙搞砸了。
Amazon S3 的 DELETE 对象操作有意 return 返回 200 OK,即使目标对象不存在也是如此。这是因为它在设计上是幂等的。因此,aws-sdk
gem 将在相同情况下 return 成功响应。
对正斜杠的快速说明。您可以在键的开头有任意数量的“/”字符,但是前面有“/”的对象与没有的对象不同。例如:
# public urls for two different objects
http://bucket-name.s3-amazonaws.com/key
http://bucket-name.s3-amazonaws.com//key
无论您是否选择使用斜线,只要保持一致即可。
我正在使用 aws sdk 从存储桶中删除一个(或多个)对象,问题是不存在的键仍然被视为已成功删除,SDK 不应该引发错误钥匙不存在?
另一个问题是,与确实存在的键相对应的对象没有被删除,而是返回为已成功删除。
编辑:
第二个问题似乎只是当要删除的对象在文件夹内时,在根目录中它被删除了。
原来你不能在密钥的开头有'/',我没有意识到,不确定为什么它在那里但它是把钥匙搞砸了。
Amazon S3 的 DELETE 对象操作有意 return 返回 200 OK,即使目标对象不存在也是如此。这是因为它在设计上是幂等的。因此,aws-sdk
gem 将在相同情况下 return 成功响应。
对正斜杠的快速说明。您可以在键的开头有任意数量的“/”字符,但是前面有“/”的对象与没有的对象不同。例如:
# public urls for two different objects
http://bucket-name.s3-amazonaws.com/key
http://bucket-name.s3-amazonaws.com//key
无论您是否选择使用斜线,只要保持一致即可。