簡體   English   中英

使用“ aws-sdk”保存后如何重命名S3存儲桶上的文件?

[英]How to Rename a file on S3 bucket after save using 'aws-sdk'?

我正在嘗試使用以下代碼更新保存在AWS S3上的文件名

gem 'aws-sdk', '~> 2.3'

creds = Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'])

s3 = Aws::S3::Resource.new(credentials: creds, region: ENV['AWS_REGION'])

bucket = s3.bucket(ENV['AWS_S3_BUCKET'])

filename = URI.unescape(document.url).split('/').last

new_file = 'new_file_name'

obj = bucket.object(filename) # create object of original file name

obj.move_to("#{bucket.name}/#{new_file}", acl: 'public-read')

obj = bucket.object(new_file)

更新時,在obj.move_to("#{bucket.name}/#{new_file}", acl: 'public-read')行上給出錯誤:

Aws::S3::Errors::NoSuchKey 
The specified key does not exist.

有什么建議或想法如何重命名s3上的文件?

object.inspect輸出: 在此處輸入圖片說明

謝謝

您試圖將鍵x的對象移動到鍵nil 鑒於您的錯誤,我將嘗試首先初始化一個新對象y然后在其上調用move_to。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM