Hier ist, wie Sie eine Datei von der Festplatte auf den Namen Eimer hochladen und Schlüssel:
s3 = Aws::S3::Resource.new
s3.bucket('my_bucket').object('key').upload_file('screenshots/image.png')
Das ist die einfachste Methode. Sie sollten den "Schlüssel" durch den Schlüssel ersetzen, mit dem er in Amazon S3 gespeichert werden soll. Dadurch werden automatisch große Dateien für Sie hochgeladen, die die mehrteiligen Upload-APIs verwenden, und fehlerhafte Teile werden erneut versucht.
Wenn Sie immer laden bevorzugen PUT Objekt verwenden, können Sie #put
aufrufen oder verwenden 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
Auch ist die API-Referenz-Dokumentation für die v2 SDK hier: http://docs.aws.amazon.com/sdkforruby/api/index.html
, wenn ich folgen diese Beispiele bekomme ich Fehler wie: '' '' undefinierte Methode 'schreiben 'für # (NoMethodError)' '' –
YoDK
Ich landete mit Diese Antwort (http://stackoverflow.com/questions/130948/ruby-convert-file-to-string) verwendet dann '' 'object = bucket.object ('image.png')' '' '' ' object.put (body: contents) '' ' – YoDK
@EldadMor Sie sind mit der Dokumentation zu v1 verbunden. Die Dokumentation zu v2 finden Sie hier: http://docs.aws.amazon.com/sdkforruby/api/index.html –