rails6.1 / aws sdk v3
S3バケット内にあるファイルを
同一バケットの別フォルダにコピーを試みるとエラーが出ます。
Aws::S3::Errors::NoSuchKey in UsersController#update The specified key does not exist.
以下が該当のコードです。
ruby
1 2def s3_copy_image 3 if self.avatar_changed? 4 # コピー先URLを作成 5 target = "#{S3_BUCKET.url}/uploads/user/avatar/#{self.id}/#{File.basename(self.avatar)}" 6 7 object = S3_BUCKET.object(self.avatar) 8 9 # コピー実行→ここでエラー発生 10 object.copy_to(bucket: S3_BUCKET.name, key: target) 11 12 13 end 14 end
試したこと
Keyはもちろん、それぞれが正しくセットされてるか確認しました。
・target
コピー先のURLです。
正常にURL作成してました。
https://バケット名.s3.ap-northeast-1.amazonaws.com/uploads/user/avatar/1/finallogowithbg.jpg
・self.avatar
コピー元のURLです。
同じくURLは正常でした。直接叩いたらDLできました。
https://バケット名.s3.ap-northeast-1.amazonaws.com/uploads/temp/1f550ea5-573e-4bec-b718-dfd15e7d2d2c/IMG20210702152727.jpg
・S3_BUCKET.name
バケット名です。
間違いなかったです。
公式も見ましたが、特に原因が分かりませんでした。
クラス:Aws :: S3 :: Object
分かる方教えていただけると幸いです。
宜しくお願い致します。
キャプチャ追記
key: にURLでなくキーを設定してみたがエラー変わらず。
設定されてる事をキャプチャにして追加。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/08 02:47
2021/07/08 03:00
2021/07/08 03:29