我正在尝试使用foursquare API发布照片(通过foursquare2 gem)。
根据他们的文档,我必须将: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 :(得分:0)
我通过在图片路径周围添加open
调用来实现它:
foursquare.add_photo(:checkinId => XXX, :photo => Faraday::UploadIO.new(open("http://dagh1lffffqbm.cloudfront.net/1372702207.733335_13939.jpg"), 'image/jpeg'))
现在,这是否是最有效的方式,我不确定。我有一个潜在的怀疑,这实际上是在将S3文件下载到我的服务器上之后发送到foursquare。也许那是唯一的方法吗?