微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建空文件夹S3 ruby​​ SDK

我想使用 ruby sdk在amazon S3中创建一个文件夹.我已经读过S3中没有文件夹概念,所以理论上创建一个文件夹就可以创建一个带有尾部“/”的空对象
s3 = Aws::S3::Client.new( region: 'eu-west-1',credentials: creds)

s3.put_object(bucket: "my_bucket",key: "my_folder/")

这样做会在我的存储桶上创建一个空对象,但如果我尝试上传这样的文件

s3.put_object(bucket: "my_bucket",key: "my_folder/myfile")

它不会在my_folder中创建文件.它维护旧的空对象,并创建一个文件夹和一个文件.所以在这两个命令之后,桶结构是:

my_bucket/
  my_folder
  my_folder/
    my_file

为什么会这样?为什么它会创建对象my_folder两次?我应该如何创建一个文件夹供以后使用?

解决方法

当任何密钥包含’/’时,Amazon S3虚拟文件夹就会存在.在S3控制台中浏览存储桶时,它会扫描对象键以查找公共前缀,然后使用该前缀显示存储桶的子集.

给定以下对象键:

> photos / family / reunion.jpg
>照片/家庭/ vacation.jpg
> videos / funny.mp4

然后,Amazon S3将显示顶级文件夹“照片”和“视频”.如果删除“videos / funny.mp4”对象,则“视频”目录将消失.

原文地址:https://www.jb51.cc/ruby/268906.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐