GOOGLE ADS

четверг, 28 апреля 2022 г.

Cp Amazon S3 завершается с ошибкой (AccessDenied) при вызове операции GetObjectTagging

Когда я пытаюсь скопировать данные из общедоступной корзины в свою, происходит сбой с ошибкой ниже

aws s3 cp s3://awssampledbuswest2/tickit/spectrum/sales/sales_ts.000 s3://<my bkt>/
copy failed: s3://awssampledbuswest2/tickit/spectrum/sales/sales_ts.000 to s3://<my bkt>/sales_ts.000 An error occurred (AccessDenied) when calling the GetObjectTagging operation: Access Denied

Поскольку исходный путь доступен всем, любой может попытаться сделать то же самое, заменив его <my bkt>своим.

Удивительно, но я могу загрузить файл из общедоступной корзины в локальную файловую систему и загрузить его в свою собственную корзину.

aws s3 cp s3://awssampledbuswest2/tickit/spectrum/sales/. --recursive

и

aws s3 cp sales_ts.000 s3://<my bkt>/

Любое объяснение, почему это происходит и как избежать этой ошибки, приветствуется!

PS. Я пробовал с владельцем учетной записи AWS и с пользователем IAM ниже, но не повезло.
введите описание изображения здесь


Решение проблемы

Это не твоя вина. Это связано с политикой корзины в исходной корзине. Это не разрешает GetObjectTaggingвызов API.

Сегмент awssampledbuswest2был настроен для разрешения доступа из Amazon Redshift в соответствии с примерами в документации AWS. Такой доступ не пытается получить теги объекта.

Однако при копировании между сегментами команда интерфейса aws s3 cpкомандной строки AWS пытается создать полную копию объекта, включая теги объекта. Это приводит к сбою.

Копирование в локальную файловую систему прошло успешно, так как интерфейс командной строки AWS не пытается получить теги при копировании в место назначения за пределами S3, поскольку в обычных операционных системах нет понятия тегов для файлов.

Чтобы избежать этой проблемы, вы можете использовать aws s3api copy-objectкоманду для копирования файла между сегментами, которая просто делает копию, не пытаясь скопировать теги:

aws s3api copy-object --copy-source awssampledbuswest2/tickit/spectrum/sales/sales_ts.000 --bucket YOUR-BUCKET --key sales_ts.000

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...