繁体   English   中英

通过ruby sdk将文件上传到s3时,如何使用服务器端加密?

[英]How do I use server side encryption when uploading a file to s3 via the ruby sdk?

我在将SDK 2版本上传到S3时遇到问题。

运行时:

Aws.config.update({
      region: 'us-east-1',
      credentials: Aws::Credentials.new(credentials['key'],credentials['secret'],
      s3_server_side_encryption: :aes256)
})
s3 = Aws::S3::Resource.new
bucket = 'VandalayIndustriesAccountingData'
s3_file_path = "folder/filename.tar.gz"
s3_object = s3.bucket(bucket).object(s3_file_path)
s3_object.upload_file(artifact_location)

我收到以下错误:

Aws::S3::Errors::InvalidToken
-----------------------------
The provided token is malformed or otherwise invalid.

当我删除s3_server_side_encryption设置时,它变为访问拒绝错误。

我一直在尝试寻找有关使用API​​ v2进行此操作的文档,但是所有在线内容似乎都依赖于具有write方法的存储桶对象,而该方法似乎在API v2中不存在。

http://docs.aws.amazon.com/AmazonS3/latest/dev/SSEUsingRubySDK.html

我可能只是在v2 API中找不到正确的文档。 我想避免使用api的v1和v2,但可能会退而求其次。

upload_file的参数类似于write

Aws.config.update({
  region: 'us-east-1',
  credentials: Aws::Credentials.new(credentials['key'],credentials['secret'],
  )
})
s3 = Aws::S3::Resource.new
bucket = 'VandalayIndustriesAccountingData'
s3_file_path = "folder/filename.tar.gz"
s3_object = s3.bucket(bucket).object(s3_file_path)
s3_object.upload_file(artifact_location, server_side_encryption: :AES256)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM