2013-07-01 51 views
0

我正在尝试使用foursquare API(通过foursquare宝石)发布照片。通过Foursquare API上传远程图像

根据他们的文档,我必须通过:photo参数作为UploadIO(对象)。

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)和不在我的服务器上。我在这里错过了什么?

回答

0

我得到了它的图像路径周围添加open电话的工作:

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

现在,这是否是这样做的最有效的方法,那我不知道。我有一个偷偷的怀疑,这实际上是下载S3文件到我的服务器之前发送到四方。也许这是唯一的方法?