使用雾上传和下载文件

Uploading and Downloading Files using fog

使用 fog 上传和下载文件时,我见过几种不同的方法。哪个更受欢迎或者甚至重要?

正在上传

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

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

对于下载我只有一个示例,但需要将文件选项更改为 'wb' 才能使其正常工作:

正在下载

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

很好的问题。

directory.files.create 版本最终会在幕后调用 connection.put_object,因此在功能上它们在基本用法上应该是等效的。话虽这么说,directory.files.create 是首选选项,因为它允许您(在许多情况下)更改您正在使用的存储提供程序并拥有东西 "just work"(即使在该提供程序上上传的方法看起来很不同)。

在下载端,应该有类似 directory.files.getconnection.get_object 类型的区别来获取对对象的引用。您需要 directory 版本,然后像您一样调用 body 方法,应该会根据需要为您提供所需的内容。

希望澄清。