Мне нужно переименовать некоторые из моих объектов S3 (из xxx.JPG в xxx.jpg).
Поскольку мы не можем переименовать их с помощью API .NET AWSSDK.S3, я копирую файлы с другим именем ключа.
Новые объекты отображаются в консоли S3, но я не могу получить доступ к их URL-адресу (кнопка «Сделать общедоступной» также не работает).
<Error>
<script id="tinyhippos-injected"/>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>496D3070***</RequestId>
<HostId>
zZOOgc5BCSmdIwaTy/wyOKHPU/xo32feTwfW***
</HostId>
</Error>
Исходные объекты имеют «Шифрование на стороне сервера: нет», а новые имеют «Шифрование на стороне сервера: доступ запрещен», как показано на консоли S3.
Я просто не могу понять, почему новые получают это шифрование на стороне сервера. Я даже не знаю, является ли это причиной, почему я не могу получить доступ к их URL.
Мой код C #:
private const string sourceBucket = "***";
private const string destinationBucket = "***";
private const string objectKey = "***/image.JPG";
private const string destObjectKey = "***/image.jpg";
private static readonly RegionEndpoint bucketRegion = RegionEndpoint.SAEast1;
private static IAmazonS3 s3Client;
private static async Task CopyingObjectAsync()
{
try
{
s3Client = new AmazonS3Client("***", "***", RegionEndpoint.SAEast1);
CopyObjectRequest request = new CopyObjectRequest
{
SourceBucket = sourceBucket,
SourceKey = objectKey,
DestinationBucket = destinationBucket,
DestinationKey = destObjectKey,
ServerSideEncryptionMethod = ServerSideEncryptionMethod.None,
};
CopyObjectResponse response = await s3Client.CopyObjectAsync(request);
}
catch (AmazonS3Exception e)
{
Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
}
catch (Exception e)
{
Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
}
}
static void Main(string[] args)
{
s3Client = new AmazonS3Client(bucketRegion);
Console.WriteLine("Copying an object");
CopyingObjectAsync().Wait();
}
Я даже установил общедоступное ведро просто, чтобы убедиться, что это не причина, по которой я не могу получить доступ к новым объектам. Безуспешно.
Ребята, вы знаете, что я делаю не так?