繁体   English   中英

使用 asp.net 从 AWS S3 存储桶的子目录中删除文件

[英]Deleting a file from a sub directory of an AWS S3 bucket using asp.net

我想删除位于路径上的文件: bucket1/dir1/dir2/file.png

我所做的代码:

public bool DeleteFileFromS3(string bucketName, string directoryInBucket, string subDirectoryInDirectory, string fileNameInS3) 
{
    IAmazonS3 client = new AmazonS3Client(RegionEndpoint.USEast2);
    var BucketName = "";

    if (directoryInBucket == "" || directoryInBucket == null)
    {
        BucketName = bucketName; //no subdirectory just bucket name  
    }
    else
    {   // subdirectory and bucket name  
        BucketName = bucketName + @"/" + directoryInBucket + @"/" + subDirectoryInDirectory;
    }

    var objectName = fileNameInS3;

    client.DeleteObject(BucketName, objectName); 

    return true; //indicate that the file was sent 
}

但是,这不起作用。

经过一番研究,我发现 AWS 文件系统是不同的。 它是基于对象的,文件存储为带有键的对象。 但是,我找不到一个示例,该示例使用位于存储桶子目录中的文件的密钥,然后使用它们将其删除。 请给我一些建议。

BucketName应该只包含存储桶的名称。

ObjectName应包含 object 的名称,以及 object的完整路径

例如:

  • BucketName = 'my-bucket'
  • ObjectName = 'invoices/january/foo.txt'

这是因为 Amazon S3 并没有真正的目录,即使它“似乎”拥有它们。 完整路径是 object 名称(“密钥”)的一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM