![](/img/trans.png)
[英]How to move all files of folder from another folder to same S3 bucket in script elixir
[英]Move S3 objects to another folder in same bucket but with same permissions using C#
我可以使用 C# 将 S3 存储桶中的 object 从一个目录移动到另一个目录,但无法使用该 object 复制所有当前权限。
例如,我当前的 object 具有公共访问权限,但将其移动到另一个目录后,它失去了公共读取权限。
这是我用来移动对象的代码:
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);
}
这是将文件移动到另一个目录后的 output:
它失去了公开的“阅读”权限。
我自己解决了问题,通过使用 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);
我正在发布答案,所以它对某人有帮助!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.