2

我正在尝试通过node.jsshopify-api-node将本地图像上传到 Shopify 产品。

这是代码的一部分,我正在上传图像。

product.images.forEach(async image => {
  Logger.toFile("product.image", image);
  try {
    await this._api.productImage.create(shopifyProduct.id, {
      src: image.src
    });
  } catch (error) {
    Logger.error("Error uploading images.");
    this._handleErrors(error);
  }
})

如果我使用外部 URL image.src,一切正常。

这是具有工作外部 URL 的记录器:

[2022-02-01 16:44:38 UTC][Products] product.image {
  src: 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Image_created_with_a_mobile_phone.png/220px-Image_created_with_a_mobile_phone.png',
  position: 1
}

以及不工作的本地 src:

product.image {
  src: '/Users/radoslav/Server/projects/tmp/pics/264-426.png',
  position: 1
}

路径正确,图像264-426.png存在。

任何建议,我做错了什么,或者是否可以从本地链接将图像上传到 Shopify?

4

1 回答 1

2

您正在尝试从当前错误的本地相对路径上传图像。

但我不确定 API 是否使用正确的路径处理本地图像,即使您使用绝对路径也是如此。

最好的方法是使用 Node.js 读取图像并将其转换为Base64并以这种方式传递。您可以在此处参考文档:https ://shopify.dev/api/admin-rest/2021-07/resources/product-image#[post]/admin/api/2021-07/products/{product_id}/图像.json

另外请注意,async/await这在forEach函数中不起作用。因此,目前您正在同时堆叠所有上传,API 将不满意。

PS:向 Zoro/Marto & Evgeni 致以问候。;)

于 2022-02-01T20:44:05.180 回答