2016-09-28 4 views
2

В качестве заключительного этапа процесса CI сборки, я использую следующий скрипт для загрузки одного файла в то время на ведро S3:Access Denied Ошибка при загрузке нескольких файлов в последовательности с помощью AWS s3

#!/usr/bin/env bash 

echo "Uploading the file: "$1 
aws s3 cp "$1" "s3://BUCKET_NAME/$2$1" --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers 
exit; 

Когда я вызываю этот скрипт с одним файлом (с использованием команды sh upload.sh 'filename' 'path'), он работает нормально, но когда я вызываю его дважды подряд, второй скрипт оболочки и другие вызовы в командной строке aws не работают с ошибкой:

An error occurred (AccessDenied) when calling the CreateMultipartUpload operation: Access Denied 

Parameter validation failed: 
Invalid type for parameter UploadId, value: None, type: <type 'NoneType'>, valid types: <type 'basestring'> 

Individua но при запуске все более поздние из них не работают с тем же сообщением об ошибке «Отказано в доступе». Я предполагаю, что это ошибка типа гонки, но как я должен избегать этой проблемы?

+0

Я добавил флаг '--debug' в мой скрипт, и это, похоже, делает загрузку более надежной. Любая причина, почему это имеет значение? –

+0

Вы заметили какую-либо другую информацию, которая может иметь отношение к проблеме при включении отладки? – jbird

ответ

1

Эта проблема, по-видимому, решена - машина, выполняющая скрипты (агент сборки), использовала два разных соединения при выполнении запросов, а эти соединения имели свои внешние внешние IP-адреса (WiFi и проводные соединения). Только один из этих IP-адресов было разрешено политикой доступа AWS, что приводило к случайности и непредсказуемости загрузки.

Смежные вопросы