【发布时间】:2018-03-17 20:41:27
【问题描述】:
我正在尝试将文件发布到我使用 CarrierWave 远程存储的 API。
使用CarrierWave尚未上传的本地文件效果很好:
JSON.parse(RestClient.post("https://build.phonegap.com/api/v1/keys/android", {
keystore: File.new(Rails.root.join('file.keystore'))
}), symbolize_names: true)[:id]
=> 312199
这是我尝试在本地临时存储文件的方法:
response = HTTParty.get model.file.url
f = Tempfile.new SecureRandom.hex
f.binmode
f.write response.body
f.flush
f.close
JSON.parse(RestClient.post("https://build.phonegap.com/api/v1/keys/android", {
keystore: File.new(f)
}), symbolize_names: true)[:id]
RestClient::BadRequest: 400 Bad Request
我检查了临时文件和file.keystore的内容是否相同。
我做错了什么?
【问题讨论】:
-
我的猜测是
https://build.phonegap.com/api/v1/keys/android期待一个名为file.keystore的文件名?如果文件内容相同,还能有什么解释? -
你是对的。这太明显了。谢谢!
标签: ruby-on-rails ruby file carrierwave temporary-files