2013-04-11 17 views

risposta

36

Utilizzare l'opzione prefix sul metodo directory.get. Esempio:

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

Vale probabilmente la pena di notare che il prefisso è _actually_ suffisso, almeno dal punto di vista strutturale. Se il percorso del bucket annidato è "foo/bar", la chiamata al metodo sarà: '.get ('foo', prefisso: 'bar')'. – pdoherty926

+0

La nota di pdoherty926 è un po 'confusa se non si pensa al nome del bucket come parte del percorso. – Amir

+1

Qui c'è un caso limite che chiamando '.map' non restituirà ALL, ma solo una singola pagina come restituita dall'api AWS. Chiamando .each sui file, la nebbia manterrà il consumo di memoria in quanto potrebbero esserci molti file. – rposborne