次を使用して、コレクションのプレフィックスを変更する方法があることがわかります。
objects = collection.with_prefix('a/').with_prefix('b/', :replace)
objects.prefix #=> 'b/'
質問:この変更を保存するにはどうすればよいですか?
次を使用して、コレクションのプレフィックスを変更する方法があることがわかります。
objects = collection.with_prefix('a/').with_prefix('b/', :replace)
objects.prefix #=> 'b/'
質問:この変更を保存するにはどうすればよいですか?
AWS :: S3 :: S3Object#move_toメソッドを使用して、S3の「フォルダー」間でオブジェクトを移動できます。
bucket.objects.with_prefix('a/').each do |obj|
obj.move_to(obj.key.sub(/^a/, 'b'))
end
AWS :: S3 :: ObjectCollection#with_prefixの:replace引数と:append引数は、チェーンされたときに列挙されたオブジェクトをフィルタリングするために使用するプレフィックスを#with_prefixが構築する方法の動作を制御します。:appendの使用例は次のようになります。
# enumerates objects inside folder1 / folder2
bucket.objects.with_prefix(folder1).with_prefix(folder2, :append).each do |obj|
end
もちろん、これは#with_prefixへの1回の呼び出しでプレフィックスを結合するだけで実現できます。
# enumerate objects with the prefix 'abc/xyz/'
folder1 = 'abc/'
folder2 = 'xyz/'
bucket.objects.with_prefix("#{folder1}#{folder2}").each do |object|
end
私の答えを無視してください、もし私があなたの主張を理解していないのなら?
s3バケットに存在するオブジェクトのプレフィックスを変更したい。新しいプレフィックスでオブジェクトをコピーしてから、古いプレフィックスを削除した場合にのみ可能になります。