gpt4 book ai didi

python - boto 模块的 list() 方法中的问题

转载 作者:行者123 更新时间:2023-12-01 02:44:55 26 4
gpt4 key购买 nike

我使用列表方法:

all_keys = self.s3_bucket.list(self.s3_path)

存储桶“s3_path”包含文件和文件夹。上面一行的返回值令人困惑。它正在返回:

  1. 父目录
  2. 一些目录,并非全部
  3. 文件夹和子文件夹中的所有文件。

我原以为它只会返回文件。

最佳答案

Amazon S3 中实际上不存在文件夹这样的东西。它只是为了方便而提供的。即使具有该路径的文件夹不存在,对象也可以存储在给定路径中。对象的是完整路径加文件名。

例如,即使文件夹不存在,这也会复制文件:

aws s3 cp file.txt s3://my-bucket/foo/bar/file.txt

这不会创建 /foo/bar 文件夹。它只是创建一个带有 Key 的对象: /foo/bar/file.txt

但是,如果在 S3 管理控制台中创建文件夹,则会使用该文件夹的名称创建一个零长度文件,以便它显示在控制台中。列出文件时,此将显示为目录名称,但它实际上是零长度文件的名称。

这就是为什么某些目录可能出现但其他目录不出现的原因 - 这取决于它们是否是专门创建的,或者它们的对象是否只是存储在该路径中。

底线:Amazon S3 是一个对象存储系统。它实际上只是一个大的键/值存储——键是对象的名称,值是对象的内容。不要假设它与传统文件系统的工作方式相同。

关于python - boto 模块的 list() 方法中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45350264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com