You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopify内容板块Files上传图片:求可用API/GraphQL端点

上传文件至Shopify内容板块Files区域的可行方案

REST Admin API 实现

正确端点

使用Files专属的API端点,而非主题资源端点:
POST /admin/api/{api_version}/files.json
(将{api_version}替换为你正在使用的Shopify API版本,如2024-04)

请求要求

  • 权限:访问令牌需包含write_files权限
  • 请求头:
    • X-Shopify-Access-Token: {你的商店访问令牌}
    • 根据上传方式设置Content-Type:
      • 本地文件上传:multipart/form-data
      • 远程URL上传:application/json

上传示例

1. 从远程URL上传

请求体(JSON格式):

{
  "file": {
    "url": "https://your-domain.com/target-image.jpg",
    "alt": "图片描述文本",
    "content_type": "image/jpeg"
  }
}

2. 上传本地文件

以multipart/form-data格式提交,表单字段包含:

  • file[attachment]:本地文件的二进制流
  • file[alt](可选):图片描述
  • file[content_type]:文件MIME类型(如image/png)

GraphQL 实现

基础上传(远程URL)

使用fileCreate mutation,示例查询:

mutation {
  fileCreate(
    files: [
      {
        alt: "图片描述"
        contentType: IMAGE_JPEG
        originalSource: "https://your-domain.com/target-image.jpg"
      }
    ]
  ) {
    files {
      id
      url
      alt
    }
    userErrors {
      field
      message
    }
  }
}

本地文件上传

通过base64编码传递文件内容,结合变量实现:

查询语句

mutation fileCreate($files: [FileCreateInput!]!) {
  fileCreate(files: $files) {
    files {
      id
      url
    }
    userErrors {
      message
    }
  }
}

变量(JSON格式)

{
  "files": [
    {
      "alt": "本地上传图片",
      "contentType": "IMAGE_PNG",
      "attachment": "<本地文件的base64编码字符串>"
    }
  ]
}

关于主题资源端点的说明

你之前使用的POST /admin/api/2023-10/themes/<theme_id>/assets.json仅用于上传主题专属静态资源(如主题模板内的图片、样式文件),这类资源归属于特定主题,不会出现在内容板块的Files全局存储区域,因此无法满足需求。

内容的提问来源于stack exchange,提问作者yoooku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:12:19