4

对于小于 5Mb 的小文件,通过预签名 URL 上传到 S3 工作正常。当我尝试上传比这更大的东西时,我似乎400 Bad Request从 S3收到RequestTimeout了错误的响应。

我可以使用 curl 重新创建它:

# Create a test file:
mkfile -n 20m ./testfile

# Get the presigned URL
curl -XPOST http://localhost:3000/uploads -d "filename=testdata"

# Upload to S3
curl -H "Content-Type: binary/octet-stream" -XPUT -vvv -T testfile "<Presigned URL>"

签名代码如下所示:

@presigned_url ||= Aws::S3::Presigner.new.presigned_url(
  :put_object,
  bucket: ENV['AWS_BUCKET'],
  key: key,
  acl: 'private',
  expires_in: 3600,
  content_type: 'binary/octet-stream'
)

请注意,对于小于 5Mb 的文件,这一切都可以正常工作,随着文件大小的增加,故障会更频繁地发生。有没有人看到这些问题并解决了它们?

4

0 回答 0