我想刪除基本上是日期的文件夾內的所有文件。使用API從Amazon S3刪除文件夾
假設,如果有100文件文件夾下的「2015年8月10日」,而不是將所有的100文件名,我要發送的文件夾名稱。
我想下面的代碼,它不適合我。
DeleteObjectsRequest multiObjectDeleteRequest = new DeleteObjectsRequest();
multiObjectDeleteRequest.BucketName = bucketName;
multiObjectDeleteRequest.AddKey(keyName + "/" + folderName + "/");
AmazonS3Config S3Config = new AmazonS3Config()
{
ServiceURL = string.Format(servicehost)
};
using (IAmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accesskey, secretkey, S3Config))
{
try
{
DeleteObjectsResponse response = client.DeleteObjects(multiObjectDeleteRequest);
Console.WriteLine("Successfully deleted all the {0} items", response.DeletedObjects.Count);
}
catch (DeleteObjectsException e)
{
// Process exception.
}
我正在使用上面的代碼,它不工作。
S3 API不允許你直接刪除文件夾,因爲文件夾在S3中不存在(它們是對用戶的邏輯表示)。相反,您必須將[多個對象鍵指定爲'DeleteObjectsRequest'](http://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingMultipleObjectsUsingNetSDK.html)。您可以通過指定['ListObjectsRequest'](http://docs.aws.amazon.com/sdkfornet1/latest/apidocs/html/T_Amazon_S3_Model_ListObjectsRequest.htm)的'Prefix'屬性來搜索'文件夾'下的所有密鑰,所以你可以把它和刪除結合起來做你想做的事情。 – birryree