Đây là cách bạn có thể tải lên một tập tin từ đĩa vào xô tên và phím:
s3 = Aws::S3::Resource.new
s3.bucket('my_bucket').object('key').upload_file('screenshots/image.png')
Đó là phương pháp đơn giản nhất. Bạn nên thay thế 'key' bằng khóa mà bạn muốn nó được lưu trữ trong Amazon S3. Thao tác này sẽ tự động tải lên các tệp lớn cho bạn bằng API tải lên nhiều phần và sẽ thử lại các phần không thành công.
Nếu bạn muốn tải luôn luôn sử dụng đối tượng PUT, bạn có thể gọi #put
hoặc sử dụng một 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
Ngoài ra, các tài liệu tham khảo API cho SDK v2 là ở đây: http://docs.aws.amazon.com/sdkforruby/api/index.html
Nguồn
2015-02-21 00:05:21
khi tôi làm theo những ví dụ tôi nhận được lỗi như: '' 'phương thức undefined' write 'cho # (NoMethodError) '' ' –
YoDK
Tôi đã kết thúc bằng cách sử dụng câu trả lời này (http://stackoverflow.com/questions/130948/ruby-convert-file-to-string) sau đó được sử dụng '' 'object = bucket.object ('image.png')' '' '' ' object.put (nội dung: nội dung) '' ' – YoDK
@EldadMor Bạn đã liên kết với tài liệu v1. Tài liệu v2 được tìm thấy ở đây: http://docs.aws.amazon.com/sdkforruby/api/index.html –