2024-04-26 10:19:18 发布
网友
我使用的列表方法如下:
all_keys = self.s3_bucket.list(self.s3_path)
bucket“s3\u path”包含文件和文件夹。上面一行的返回值很混乱。它正在返回:
我以为它只会返回文件。你知道吗
如果bucket中有很多项,那么list_objects的结果将被分页。默认情况下,它最多返回1000个项目。查看Boto docs了解如何使用Marker对所有项进行分页。你知道吗
list_objects
Marker
哦,看起来你在第二排。对你来说,就是BucketListResultSet。你知道吗
实际上,amazons3中没有文件夹。只是为了方便。对象可以存储在给定的路径中,即使具有该路径的文件夹不存在。对象的键是完整路径加上文件名。你知道吗
例如,即使文件夹不存在,也会复制文件:
aws s3 cp file.txt s3://my-bucket/foo/bar/file.txt
这不会创建/foo/bar文件夹。它只创建一个键为:/foo/bar/file.txt的对象
/foo/bar
/foo/bar/file.txt
但是,如果在S3管理控制台中创建文件夹,则会创建一个长度为零的文件,其中包含文件夹的名称,以便该文件出现在控制台中。当列出文件时,这个将显示为目录名,但实际上是零长度文件的名称。你知道吗
这就是为什么某些目录可能会出现,而其他目录则不会出现,这取决于它们是专门创建的,还是只是简单地存储在该路径中。你知道吗
底线:amazons3是一个对象存储系统。它实际上只是一个大的键/值存储,键是对象的名称,值是对象的内容。不要假设它的工作原理与传统的文件系统相同。你知道吗
如果bucket中有很多项,那么
list_objects
的结果将被分页。默认情况下,它最多返回1000个项目。查看Boto docs了解如何使用Marker
对所有项进行分页。你知道吗哦,看起来你在第二排。对你来说,就是BucketListResultSet。你知道吗
实际上,amazons3中没有文件夹。只是为了方便。对象可以存储在给定的路径中,即使具有该路径的文件夹不存在。对象的键是完整路径加上文件名。你知道吗
例如,即使文件夹不存在,也会复制文件:
这不会创建
/foo/bar
文件夹。它只创建一个键为:/foo/bar/file.txt
的对象但是,如果在S3管理控制台中创建文件夹,则会创建一个长度为零的文件,其中包含文件夹的名称,以便该文件出现在控制台中。当列出文件时,这个将显示为目录名,但实际上是零长度文件的名称。你知道吗
这就是为什么某些目录可能会出现,而其他目录则不会出现,这取决于它们是专门创建的,还是只是简单地存储在该路径中。你知道吗
底线:amazons3是一个对象存储系统。它实际上只是一个大的键/值存储,键是对象的名称,值是对象的内容。不要假设它的工作原理与传统的文件系统相同。你知道吗
相关问题 更多 >
编程相关推荐