Amazon S3删除子文件夹并将其';s目录C#
假设在S3存储桶中有以下层次结构Amazon S3删除子文件夹并将其';s目录C#,c#,amazon-web-services,amazon-s3,C#,Amazon Web Services,Amazon S3,假设在S3存储桶中有以下层次结构 Bucket DeptFolder Folder1 Folder2 -file1 -file2 -file3 我想删除Folder2和它下面的所有文件,这样它看起来就像这样 Bucket DeptFolder Folder1 我运行以下代码,删除发生在Folder1而不是Folder2 using (var s
Bucket
DeptFolder
Folder1
Folder2
-file1
-file2
-file3
我想删除Folder2和它下面的所有文件,这样它看起来就像这样
Bucket
DeptFolder
Folder1
我运行以下代码,删除发生在Folder1而不是Folder2
using (var s3Client = new AmazonS3Client(myAccessKey,mySecretAccessKey, config))
{
S3DirectoryInfo directoryToDelete = new S3DirectoryInfo(s3Client, myBucket, "DeptFolder/Folder1/Folder2");
directoryToDelete.Delete(true);
}
我的结局是
Bucket
DeptFolder
谁能告诉我哪里出了问题?谢谢 AmazonS3是一个对象存储系统,而不是文件系统 文件夹实际上不存在 例如,您可以创建一个名为
DeptFolder/Folder1/Folder2/foo
的对象,该对象将在该路径中创建,即使文件夹不存在!文件夹似乎在那里,但它们只是为了方便而创建的
如果对象被删除,文件夹也会消失,因为它们实际上并不存在
我想这就是发生在你身上的事。。。Folder1
中没有对象,因此当删除Folder1/Folder2
时,Folder1
也会消失,因为其中没有使其“出现”的内容
底线:不要认为S3是一个普通的文件系统。不要担心存在哪些目录/文件夹。只需将文件存储在您想要的位置,它就可以正常工作。空文件夹(通常)不存在。不要惊慌
有些人会惊慌失措,所以他们会创建与文件夹同名的空(零长度)文件,这会强制文件夹出现。您可以这样做,但最好接受S3的工作方式。AmazonS3是一个对象存储系统,而不是文件系统 文件夹实际上不存在 例如,您可以创建一个名为
DeptFolder/Folder1/Folder2/foo
的对象,该对象将在该路径中创建,即使文件夹不存在!文件夹似乎在那里,但它们只是为了方便而创建的
如果对象被删除,文件夹也会消失,因为它们实际上并不存在
我想这就是发生在你身上的事。。。Folder1
中没有对象,因此当删除Folder1/Folder2
时,Folder1
也会消失,因为其中没有使其“出现”的内容
底线:不要认为S3是一个普通的文件系统。不要担心存在哪些目录/文件夹。只需将文件存储在您想要的位置,它就可以正常工作。空文件夹(通常)不存在。不要惊慌
有些人会惊慌失措,所以他们会创建与文件夹同名的空(零长度)文件,这会强制文件夹出现。您可以这样做,但最好接受S3的工作方式。在Folder2之后添加正斜杠会改变结果吗?“DeptFolder/Folder1/Folder2/”在Folder2之后添加正斜杠不会导致任何内容被删除。我也尝试过正斜杠星号,在Folder2之后添加正斜杠,结果如何?“DeptFolder/Folder1/Folder2/”在Folder2之后添加正斜杠不会导致任何内容被删除。我也尝试过正斜杠星号,很有意义!谢谢你的回答!这很有道理!谢谢你的回答!