我想删除基本上是日期的文件夹内的所有文件。使用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