タケユー・ウェブ日報

Webシステム受託会社の業務の中での気づきや調べごとのメモ。

AWS SDK for Ruby でアップロード用の署名付きURLを生成する方法

s3_resource = Aws::S3::Resource.new
object = s3_resource.bucket(BUCKET_NAME).object(OBJECT_KEY)
url = URI.parse(object.presigned_url(:put))

ちなみにcurl コマンドでアップロードするには

$ curl -i -X PUT --upload-file README.md "<PRESIGNED_URL>"

HTTP/1.1 200 OK
x-amz-id-2: FdLlF7a48jiq8Q7mM/VdAe8ZmcNfCcSKTIry5/LEZNUhizUb1+ALaNNoWjB/ZRLpD+ZtnUDqjlA=
x-amz-request-id: 61D6A2090B5A471E
Date: Mon, 07 Dec 2020 04:37:30 GMT
x-amz-version-id: DQ_QAWEZz600VtEtZJdGvZqZdiT4NzBS
ETag: "0cfbd649b94d4dc64447b516ec65f1a9"
Content-Length: 0
Server: AmazonS3