加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用Spree Commerce REST API上传产品图像

发布时间:2020-12-17 02:22:15 所属栏目:百科 来源:网络整理
导读:我必须将旧的eshop迁移到Spree上制作的新的eshop.它有很好的API来做到这一点. 但我坚持从远程服务器上传图像.以下是我在制作新产品时所做的事情: require 'nokogiri'require 'open-uri'require 'curb'require 'uri'http = Curl.post("http://DOMAIN/api/pro
我必须将旧的eshop迁移到Spree上制作的新的eshop.它有很好的API来做到这一点.

但我坚持从远程服务器上传图像.以下是我在制作新产品时所做的事情:

require 'nokogiri'
require 'open-uri'
require 'curb'
require 'uri'

http = Curl.post("http://DOMAIN/api/products?product[name]=Test
  &product[price]=123
  &product[shipping_category_id]=1
  &product[taxon_ids]=52
  &product[sku]=020323232
  &product[image]=http://www.computercloset.org/Altair_8800_and_Santa.jpg") do |http|
    http.headers['X-Spree-Token'] = 'd60ff5896cef2920d83f18c11b95ee1dff8d9c82d1480cbc'
end

除图像外,产品将保存所有参数.

我认为我的语法错误,但我无法找到有关在http://guides.spreecommerce.com/api/上传图像的示例或内容

解决方法

您可能无法以这种方式创建图像.

您最好的选择是使用此未记录的API调用直接创建图像:

https://github.com/spree/spree/blob/v2.2.0/api/app/controllers/spree/api/images_controller.rb

从2.2.0开始,您可以指定以下参数:
:alt,:attachment,:position,:viewable_type,:viewable_id

我希望你可能会发现这不足以做你正在寻找的东西.特别是,您需要单独从此过程上传文件.这将只创建显示存储位置的图像记录(通过Paperclip).指定您列出的完整网址可能不起作用.它需要是Paperclip存储图像的地方存储的文件的文件名.

这不是一种理想的体验,这可能是此API调用未记录的原因.如果您能够修改它以使其更好地工作,您应该向Spree团队发送拉取请求.我相信他们很乐意收到它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读