【问题标题】:Get cURL response body in Rails console在 Rails 控制台中获取 cURL 响应正文
【发布时间】:2015-11-07 15:50:40
【问题描述】:

我正在进行数据库迁移,我需要在 Rails 控制台中使用 cURL 将旧数据库中的图像上传到 Filepicker。我有一个有效的命令,我需要从这里获取响应中的 Filepicker URL。但是,如下设置响应只会返回 true

所以这将根据需要将文件上传到 Filepicker:

res = system("curl -X POST -F fileUpload=@oldimages/oldimage#{id}.jpg https://www.filepicker.io/api/store/S3\?key\=OURAPIKEY")

给出这个输出:

{"url": "https://www.filepicker.io/api/file/THEURL", "size": 207610, "type": "image/jpeg", "filename": "oldimage1.jpg"} => true

问题是我无法分配 URL - res 变量只存储 true

那么,简而言之,我如何访问这些数据的其余部分以将其分配给新数据库中的实例?

【问题讨论】:

  • 这里一定要使用 curl 吗?似乎Net::HTTP 会更好用。
  • 同意,这是我们的第一个方法;但是,由于文件编码的差异,我们会遇到各种错误。这种方式允许我们使用存储在本地的原始图像数据而无需任何额外的转换——无论如何,如果您想出替代方案,请告诉我!谢谢@Anthony

标签: ruby-on-rails ruby post curl database-migration


【解决方案1】:

如果你需要运行 curl,你可以这样做

 body=`curl -X POST -F fileUpload=@oldimages/oldimage#{id}.jpg https://www.filepicker.io/api/store/S3\?key\=OURAPIKEY`

body = %x(curl -X POST -F fileUpload=@oldimages/oldimage#{id}.jpg https://www.filepicker.io/api/store/S3\?key\=OURAPIKEY)

IO.popen("curl -X POST -F fileUpload=@oldimages/oldimage#{id}.jpg https://www.filepicker.io/api/store/S3\?key\=OURAPIKEY").read

但如果我是你,我会尝试使用 net:http 或其他 ruby​​ http 客户端作为 typhoeus 或 restclient

【讨论】:

  • 感谢@Horacio,这是一种享受!我会 100% 更愿意以另一种方式来处理这个问题,但我们有很多不可预见的问题迫使我们走这条路。已经解决了,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
  • 2015-04-15
  • 1970-01-01
  • 2021-07-05
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多