使用 shopify-api-node 从本地机器上传文件(图片)
Upload file (image) from local machine using shopify-api-node
我正在尝试通过 node.js and shopify-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);
}
})
如果我为 image.src
使用外部 URL,一切正常。
这是使用外部工作的记录器 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 link?
您正在尝试从当前错误的本地相对路径上传图片。
但我不确定 API 是否使用正确的路径处理本地图像,即使您使用绝对路径也是如此。
最好的方法是使用 Node.js 读取图像并将其转换为 Base64
并以这种方式传递。您可以在此处参考文档:https://shopify.dev/api/admin-rest/2021-07/resources/product-image#[post]/admin/api/2021-07/products/{product_id}/images.json
此外请注意,async/await
在 forEach
函数中不起作用。因此,目前您正在同时堆叠所有上传内容,API 不会高兴。
PS: 代我向 Zoro/Marto & Evgeni 致意。 ;)
我正在尝试通过 node.js and shopify-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);
}
})
如果我为 image.src
使用外部 URL,一切正常。
这是使用外部工作的记录器 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 link?
您正在尝试从当前错误的本地相对路径上传图片。
但我不确定 API 是否使用正确的路径处理本地图像,即使您使用绝对路径也是如此。
最好的方法是使用 Node.js 读取图像并将其转换为 Base64
并以这种方式传递。您可以在此处参考文档:https://shopify.dev/api/admin-rest/2021-07/resources/product-image#[post]/admin/api/2021-07/products/{product_id}/images.json
此外请注意,async/await
在 forEach
函数中不起作用。因此,目前您正在同时堆叠所有上传内容,API 不会高兴。
PS: 代我向 Zoro/Marto & Evgeni 致意。 ;)