在 Rails 控制台中获取 cURL 响应正文

Get cURL response body in Rails console

我正在进行数据库迁移,我需要在 Rails 控制台中使用 cURL 将旧数据库中的图像上传到 Filepicker。我有一个有效的命令,我需要做的就是从响应中获取 Filepicker URL。但是,将响应设置为 returns 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 你可以这样做

 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