qiniu / ruby-sdk

Qiniu Resource (Cloud) Storage SDK for Ruby
MIT License
164 stars 138 forks source link

没有直接上传二进制流的方法吗? #216

Closed yanchengv closed 6 years ago

yanchengv commented 6 years ago

文件不需要上传服务器,接受二进制流的接口的接口有吗?

prettybot commented 6 years ago

@yanchengv

不知道你的场景是什么,但是我猜想一下哈,可能是通过表单上传的文件,需要保存到七牛云存储。 如果是这样的,那么其实不需要先下载到本地,然后再上传。

因为当你指定form的enctype属性为multipart/form-data时,在rails controller对应的action中收到的file域的参数为:

 {"img_url"=>#<ActionDispatch::Http::UploadedFile:0x007f64de7b8208 @tempfile=#<Tempfile:/tmp/RackMultipart20180928-17986-w75me9.png>, @original_filename="Selection_007.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"img_url\"; filename=\"Selection_007.png\"\r\nContent-Type: image/png\r\n">, "file_id"=>"0"}

看到这个class没,ActionDispatch::Http::UploadedFile,我们来翻阅一下API 文档

image

对,我们直接把params[:img_url].tempfile或者params[:img_url].to_io当作待上传的文件就可以了。

如有错误,请指正,thanks.

yanchengv commented 6 years ago

@mumuxizzz 试了传入 params[:img_url].tempfile ,你的方案可以。多谢!

prettybot commented 6 years ago

@mumuxizzz 试了传入 params[:img_url].tempfile ,你的方案可以。多谢!

不客气的😊