2013-04-11 8 views

Odpowiedz

36

Użyj opcji prefix w metodzie directory.get. Przykład:

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 
+1

Warto zauważyć, że "przedrostek" to przyrostek, przynajmniej formalnie. Jeśli ścieżka do zagnieżdżonego zasobnika to "foo/bar", wówczas wywołanie metody to: '.get ('foo', prefix: 'bar')'. – pdoherty926

+0

Uwaga pdoherty926 jest nieco zagmatwana, jeśli nie uważasz, że nazwa wiadra jest częścią ścieżki. – Amir

+1

Istnieje tutaj przypadek krawędzi, w którym wywołanie '.map' nie zwróci ALL, ale tylko jedna strona zwrócona przez interfejs API AWS. Wywołanie .each na plikach pozwoli Fog zarządzać zużyciem pamięci, ponieważ może być wiele plików. – rposborne

Powiązane problemy