我正在使用加密数据,然后再将数据发送到亚马逊s3。这是示例代码,我已经改变了一点来加密和上传mp3文件。
https://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Encryption.html
require 'openssl'
key = OpenSSL::PKey::RSA.new(1024)
# encryption client
s3 = Aws::S3::Encryption::Client.new(encryption_key: key)
# round-trip an object, encrypted/decrypted locally
s3.put_object(bucket:'aws-sdk', key:'secret', body: open('song.mp3'))
s3.get_object(bucket:'aws-sdk', key:'secret').body.read
我如何get_object并将其写入文件以便可以检索原始mp3?
答案 0 :(得分:2)
确定可以使用此代码
IO.write('testing.mp3', s3e.get_object(bucket:'aws-sdk', key:'secret').body.read)
它将写入一个新文件testing.mp3。谢谢!
答案 1 :(得分:1)
之前忽略my comment from,因为Aws::S3::Encryption::Client
是来自Aws::S3::Client#get_object
的派生类,您可以提供后者接受的所有参数。其中一个允许直接将文件写入磁盘:
# stream object directly to disk
resp = s3.get_object(
response_target: '/path/to/file',
bucket: 'bucket-name',
key: 'object-key')