Как скопировать все файлы в папке на s3 с помощью Fog в Ruby - PullRequest
0 голосов
/ 07 октября 2019

Как мне скопировать все файлы в каталоге s3 (с тем же префиксом) в другой каталог в том же контейнере, используя fog?

Например: скопировать все файлы с префиксом <bucket>/foo/ в <bucket>/bar/

1 Ответ

0 голосов
/ 08 октября 2019

Я не думаю, что существует прямой способ сделать это как таковой, и вместо этого вам нужно будет перебирать соответствующие файлы, чтобы выполнить перемещение. Я думаю, что это будет выглядеть примерно так:

require 'rubygems'
require 'fog'

# create a connection
connection = Fog::Storage.new({
  provider:             'AWS',
  aws_access_key_id:     YOUR_AWS_ACCESS_KEY_ID,
  aws_secret_access_key: YOUR_AWS_SECRET_ACCESS_KEY
})

directory = connection.directories.get(BUCKET, prefix: '/foo/')

directory.files.each do |file|
  file.copy(BUCKET, "/bar/#{file.key.split('/').last}")
end
...