使用 aws-sdk v2 将图像上传到 S3
Uploading an image to S3 using aws-sdk v2
我在使用 aws-sdk 文档时遇到了麻烦,我点击的所有链接似乎都已过时且无法使用。
我正在寻找将图像文件上传到 Ruby 中的 S3 存储桶的直接实施示例。
- 假设图片路径是
screenshots/image.png
- 我想将它上传到存储桶
my_bucket
- AWS 凭证存在于我的 ENV 中
非常感谢任何建议。
以下是如何将文件从磁盘上传到指定的存储桶和密钥:
s3 = Aws::S3::Resource.new
s3.bucket('my_bucket').object('key').upload_file('screenshots/image.png')
这是最简单的方法。您应该将 'key' 替换为您希望它存储在 Amazon S3 中的密钥。这将使用分段上传 APIs 自动为您上传大文件,并将重试失败的部分。
如果您更喜欢始终使用 PUT 对象上传,您可以调用 #put
或使用 Aws::S3::Client
:
# using put
s3 = Aws::S3::Resource.new
File.open('screenshots/image.png', 'rb') do |file|
s3.bucket('my_bucket').object('key').put(body:file)
end
# using a client
s3 = Aws::S3::Client.new
File.open('screenshots/image.png', 'rb') do |file|
s3.put_object(bucket:'my_bucket', key:'key', body:file)
end
此外,v2 SDK 的 API 参考文档位于此处:http://docs.aws.amazon.com/sdkforruby/api/index.html
我在使用 aws-sdk 文档时遇到了麻烦,我点击的所有链接似乎都已过时且无法使用。
我正在寻找将图像文件上传到 Ruby 中的 S3 存储桶的直接实施示例。
- 假设图片路径是
screenshots/image.png
- 我想将它上传到存储桶
my_bucket
- AWS 凭证存在于我的 ENV 中
非常感谢任何建议。
以下是如何将文件从磁盘上传到指定的存储桶和密钥:
s3 = Aws::S3::Resource.new
s3.bucket('my_bucket').object('key').upload_file('screenshots/image.png')
这是最简单的方法。您应该将 'key' 替换为您希望它存储在 Amazon S3 中的密钥。这将使用分段上传 APIs 自动为您上传大文件,并将重试失败的部分。
如果您更喜欢始终使用 PUT 对象上传,您可以调用 #put
或使用 Aws::S3::Client
:
# using put
s3 = Aws::S3::Resource.new
File.open('screenshots/image.png', 'rb') do |file|
s3.bucket('my_bucket').object('key').put(body:file)
end
# using a client
s3 = Aws::S3::Client.new
File.open('screenshots/image.png', 'rb') do |file|
s3.put_object(bucket:'my_bucket', key:'key', body:file)
end
此外,v2 SDK 的 API 参考文档位于此处:http://docs.aws.amazon.com/sdkforruby/api/index.html