2016-09-16 74 views
2

我遇到了sdk版本2上传到S3的问题。如何通过ruby sdk将文件上传到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,但可能会回到这个问题。

回答

0

upload_file采取类似的论点写

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) 
相关问题