У меня очень странная проблема с AWS S3 и лямбда-функцией в. NET Core. Я копирую (или лучше клонирую) через. NET «папку» в том же ведре. Эти папки доступны как CDN через указанный c домен.
Мне удалось выполнить рекурсивное копирование «папки» A в папку «B».
По какой-то странной причине некоторые из скопированных файлы не доступны через URL. Например: / A / images / picture.png и / B / images / picture.png
Я проверил метаданные и ACL для файла на A и В и это выглядит так же. Но все же я получаю AccessDenied, когда пытаюсь найти файл B.
Это фрагмент моего кода, может быть, кто-то может мне помочь. Я отключил Шифрование и дал скопированному OwnerFullAccess .
CopyObjectResponse response = await awsCDNS3Client.CopyObjectAsync(new CopyObjectRequest
{
MetadataDirective = S3MetadataDirective.COPY,
CannedACL = S3CannedACL.BucketOwnerFullControl,
ServerSideEncryptionMethod = ServerSideEncryptionMethod.None,
SourceBucket = sourceBucket,
SourceKey = sourceKey,
DestinationBucket = destinationBucket,
DestinationKey = destinationKey
});
var uploadRequest = new TransferUtilityUploadRequest
{
CannedACL = S3CannedACL.BucketOwnerFullControl,
BucketName = bucketName,
Key = bucketObjectKey,
StorageClass = S3StorageClass.Standard,
AutoCloseStream = true,
PartSize = Bucket.MiminumPartSize,
ServerSideEncryptionMethod = ServerSideEncryptionMethod.None
};
И в результате копирования получаю AccessDenied (объект на самом деле существует).
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>AAAAAA</RequestId>
<HostId>
NNNNNN</HostId>
</Error>