使用aws s3按顺序上载多个文件时出现“拒绝访问”错误

时间:2016-09-28 16:04:45

标签: amazon-s3 aws-sdk

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

#!/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')它可以正常工作,但是当我快速连续两次调用它时,第二个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'>

请求单独运行,但是当一起运行时,后面的请求都会失败并显示相同的“拒绝访问”错误消息。我认为这是一种竞争条件的错误,但我应该如何/可以避免这个问题?

1 个答案:

答案 0 :(得分:1)

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

相关问题