使用aws-sdk-s3 ruby​​生成预签名的URL

时间:2019-12-04 00:33:30

标签: ruby amazon-web-services amazon-s3

我正在尝试使用Ruby为s3存储桶生成一个预签名的网址。

    client = Aws::S3::Client.new(
      region:               'eu-west-1', #or any other region
      access_key_id:        ENV['AWS_ACCESS_KEY_ID'],
      secret_access_key:    ENV['AWS_SECRET_ACCESS_KEY']
    )
    @signer =  Aws::S3::Presigner.new(client: client)
    @signer.presigned_url(
      :put_object,
      bucket: ENV['S3_PROFILES_BUCKET'],
      key: "test-#{SecureRandom.uuid}"
    )

我尝试获取由此返回的网址,例如:

"https://some-bucket.s3.eu-west-1.amazonaws.com/test-4ad40444-e907-4748-a025-a12515580450?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIATTSSBDQFDFFX36UU4%2F20191204%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20191204T002242Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=31b0a90127f43e79462713b101b5fc80146c50f800cfce31c493d206ea142333"

当我尝试使用图像二进制文件对此URL进行POST(或PUT)请求时(我使用的是Postman),我收到有关签名不正确的错误。

0 个答案:

没有答案