使用雾上传和下载文件
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.get
与 connection.get_object
类型的区别来获取对对象的引用。您需要 directory
版本,然后像您一样调用 body
方法,应该会根据需要为您提供所需的内容。
希望澄清。
使用 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.get
与 connection.get_object
类型的区别来获取对对象的引用。您需要 directory
版本,然后像您一样调用 body
方法,应该会根据需要为您提供所需的内容。
希望澄清。