web-dev-qa-db-ja.com

Ruby)でフォグを使用してS3フォルダー内のすべてのファイルを一覧表示する方法

Fogを使用して特定のS3「ディレクトリ」内のすべてのファイルを一覧表示するにはどうすればよいですか?

S3がファイルをフォルダーに保存しないことは知っていますが、バケット内のリスト全体を取得するのではなく、返されるファイルを特定の「フォルダー」に制限する方法が必要です。

23
Gerry Shaw

Directory.getメソッドでprefixオプションを使用します。例:

def get_files(path, options)
  connection = Fog::Storage.new(
    provider: 'AWS',
    aws_access_key_id: options[:key],
    aws_secret_access_key: options[:secret]
  )
  connection.directories.get(options[:bucket], prefix: path).files.map do |file|
    file.key
  end
end
40
Gerry Shaw