这似乎是个愚蠢的问题,但我找不到理由。当我在s3 URI上运行命令aws S3 ls时,它会在输出中给出一些桶的父文件夹的名称,而对于一些桶,它只会列出文件夹中的文件。
示例:
aws s3 ls s3://test-bucket/test_folder/ --recursive --human-readable --summarize
2022-06-28 20:04:36 0 Bytes test_folder/
2022-06-28 20:05:58 3.0 KiB test_folder/file.txt
对于另一个s3 URI,它将只列出内容
aws s3 ls s3://sample_/sample_test/ --recursive --human-readable --summarize
2021-06-29 03:24:08 5.2 sample_test/file1.txt
2021-06-29 03:24:07 7.0 sample_test/file2.txt
2021-06-29 03:24:08 5.1 sample_test/file3.txt
我不知道是什么导致了这种行为,这里有没有我缺少的文档?
谢谢
发布于 2022-06-28 20:21:31
这很可能是因为有人使用S3控制台显式地创建了一个名为test_folder
的“文件夹”,但是他们并没有为sample_test
这样做。他们只是简单地将3个文件上传到sample_test
。
您所看到的文件夹test_folder/
只是一个S3对象,其键为test_folder/
,其大小为零。它不需要存在,你就可以上传文件到test_folder/
。在S3控制台中,这只是一种视觉上的方便。
S3中通常没有真正的文件夹。它们是虚拟的,并从有一个以正斜杠结尾的公共前缀的多个对象的存在中推断出来--例如dogs/bingo.png
和dogs/elvis.jpg
意味着存在一个名为dogs/
的虚拟文件夹,但它实际上并不存在(通常)。
https://stackoverflow.com/questions/72792670
复制相似问题