gpt4 book ai didi

c# - 使用 C# 将 S3 对象移动到同一存储桶中但具有相同权限的另一个文件夹

转载 作者:行者123 更新时间:2023-12-02 15:59:14 31 4
gpt4 key购买 nike

我能够使用 C# 将 S3 存储桶中的对象从一个目录移动到另一个目录,但无法复制该对象的所有当前权限。

例如,我当前的对象具有公共(public)访问权限,但在将其移动到另一个目录后,它失去了公共(public)读取权限。

这是我用来移动对象的代码:

public void MoveFile(string sourceBucket, string destinationFolder, string file) {
AmazonS3Client s3Client = new AmazonS3Client(ConfigurationHelper.AmazonS3AccessKey, ConfigurationHelper.AmazonS3SecretAccessKey, Amazon.RegionEndpoint.USEast1);

S3FileInfo currentObject = new S3FileInfo(s3Client, sourceBucket, file);
currentObject.MoveTo(sourceBucket + "/" + destinationFolder, file);
}

这是将文件移动到另一个目录后的输出:

它失去了公开的“阅读”权限。

最佳答案

我自己解决了问题,通过使用 CopyObject() 和 DeleteObject() 而不是使用 moveTo inbuild 方法解决了我的问题,

这是真正帮助我的代码:

CopyObjectRequest copyObjectRequest = new CopyObjectRequest
{
SourceBucket = sourceBucket,
DestinationBucket = sourceBucket + "/" + destinationFolder,
SourceKey = file,
DestinationKey = file,
CannedACL = S3CannedACL.PublicRead,
StorageClass = S3StorageClass.StandardInfrequentAccess,
};

CopyObjectResponse response1 = s3Client.CopyObject(copyObjectRequest);

var deleteObjectRequest = new DeleteObjectRequest
{
BucketName = sourceBucket,
Key = file
};

s3Client.DeleteObject(deleteObjectRequest);

我发布答案是为了对某人有帮助!!!

关于c# - 使用 C# 将 S3 对象移动到同一存储桶中但具有相同权限的另一个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71062148/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com