【问题标题】:AWS S3 - Move an object to a different folderAWS S3 - 将对象移动到不同的文件夹
【发布时间】:2021-09-08 04:54:03
【问题描述】:

有没有办法使用 AWS 开发工具包(最好用于 .Net)将对象移动到同一存储桶中的不同文件夹?

搜索所有我能看到的是复制到新位置和删除原始位置的建议(通过“CopyObjectRequest”和“DeleteObjectRequest”很容易)但是我只是想知道这是唯一的方法吗?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-sdk


    【解决方案1】:

    原来你可以使用 Amazon.S3.IO.S3FileInfo 来获取对象,然后调用“MoveTo”方法来移动对象。

    S3FileInfo currentObject = new S3FileInfo(S3Client,Bucket,CurrentKey);
    S3FileInfo movedObject = currentObject.MoveTo(Bucket,NewKey);
    

    编辑:原来上面的“MoveTo”方法只是在幕后执行复制和删除:)

    更多信息:
    https://docs.aws.amazon.com/sdkfornet/v3/apidocs/index.html?page=S3/TS3IOS3FileInfo.html&tocid=Amazon_S3_IO_S3FileInfo

    【讨论】:

    【解决方案2】:

    @user1527762 提到 S3FileInfo 在 .NET Core 版本的 AWSSDK.S3 库 (v 3.7.2.2) 中不可用。

    如果您在 .net 核心中,您可以使用 CopyObject 将对象从一个存储桶移动到另一个存储桶。

    var s3Client = new AmazonS3Client(RegionEndpoint.USEast1);
    var copyRequest = new CopyObjectRequest
                          {
                              SourceBucket = "source-bucket",
                              SourceKey = "fileName",
                              DestinationBucket = "dest-bucket",
                              DestinationKey = "fileName.jpg",
                              CannedACL = S3CannedACL.PublicRead,
                           };
     var copyResponse = await s3Client.CopyObjectAsync(copyRequest);
    

    CopyObject 不会删除源对象,因此您必须像这样调用 delete:

     DeleteObjectRequest request = new DeleteObjectRequest
                {
                    BucketName = "source-bucket",
                    Key = "fileName.jpg"
                };
    
                await s3Client .DeleteObjectAsync(request);
    

    这里有关于 CopyObject 的详细信息:https://docs.aws.amazon.com/AmazonS3/latest/userguide/copy-object.html

    这里是 DeleteObject:https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-objects.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 2020-05-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 2014-07-01
      相关资源
      最近更新 更多