2017-11-28 3 views
0

Beim Hochladen und Herunterladen von Dateien mit Nebel habe ich ein paar verschiedene Möglichkeiten gesehen, dies zu tun. Welches ist bevorzugt oder spielt es überhaupt eine Rolle?Hochladen und Herunterladen von Dateien mit Nebel

Hochladen

directory.files.create(key: local_filename, 
         body: File.open(local_path), 
         public: false) 

oder

connection.put_object(directory.key, 
         local_filename, 
         File.open(local_path), 
         public: false) 

und zum Download Ich habe nur ein Beispiel, aber notwendig, um die Datei Optionen 'wb' ändern, um es an die Arbeit:

Herunterladen

File.open(Rails.root.join(file.key), 'wb') do |local_file| 
    local_file.write(file.body) 
end 

Antwort

0

Große Fragen.

Die directory.files.create Version endet mit dem Aufruf connection.put_object unter den Abdeckungen, so funktionell sollten sie in der Grundversorgung gleichwertig sein. Nichtsdestoweniger ist directory.files.create die bevorzugte Option, da Sie (in vielen Fällen) den von Ihnen verwendeten Speicheranbieter ändern können und die Dinge "einfach funktionieren" (auch wenn die Methode zum Hochladen auf diesen Anbieter ganz anders aussieht).

Auf der Download-Seite sollte eine ähnliche directory.files.get vs connection.get_object Typ Unterscheidung sein, um eine Referenz auf das Objekt zu erhalten. Sie wollen die directory Version, und dann rufen Sie die body Methode, wie Sie, sollte Ihnen den Inhalt zu tun, wie Sie benötigen.

Hoffnung, die klärt.

Verwandte Themen