使用aws s3按顺序上传多个文件时访问被拒绝错误

Access Denied error when uploading multiple files in sequence using aws s3

作为 CI 构建过程的最后一步,我使用以下 shell 脚本一次将一个文件上传到 S3 存储桶:

#!/usr/bin/env bash

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

当我用一个文件调用这个脚本时(使用命令 sh upload.sh 'filename' 'path'),它工作正常,但是当我快速连续调用它两次时,第二个 shell 脚本和其他调用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'>

单独的请求有效,但是当 运行 在一起时,后面的请求都失败并显示相同的 'Access Denied' 错误消息。我假设这是一种竞争条件错误,但是 should/could 我如何避免这个问题?

此问题似乎已解决 - 机器 运行 脚本(构建代理)在发出请求时使用了两个不同的连接,并且这些连接每个都有自己的外部 IP 地址(WiFi 和有线连接。)AWS 访问策略只允许其中一个 IP,导致上传的随机性和不可预测性。