0

我正在尝试使用foursquare API(通过foursquare2 gem)发布照片。

根据他们的文档,我必须将 :photo 参数作为 UploadIO(Object) 传递。

http://rubydoc.info/gems/foursquare2/Foursquare2/Photos

当我尝试拨打电话时,我收到“没有此类文件或目录错误”

foursquare.add_photo(:checkinId => XXX, :photo => Faraday::UploadIO.new('http://dagh1lffffqbm.cloudfront.net/1372702207.733335_13939.jpg', 'image/jpeg'))
Errno::ENOENT: No such file or directory - http://dagh1lffffqbm.cloudfront.net/1372702207.733335_13939.jpg

请注意,我尝试上传的文件是远程文件(在 S3 上),而不是在我的服务器上。我在这里想念什么?

4

1 回答 1

0

我通过open在图像路径周围添加一个调用来让它工作:

foursquare.add_photo(:checkinId => XXX, :photo => Faraday::UploadIO.new(open("http://dagh1lffffqbm.cloudfront.net/1372702207.733335_13939.jpg"), 'image/jpeg'))

现在这是否是最有效的方法,我不确定。我偷偷怀疑这实际上是在发送到foursquare之前将S3文件下载到我的服务器上。也许这是唯一的方法?

于 2013-07-02T16:31:23.123 回答