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

如何利用AppCenter下载URL获取构建包并上传至Headspin仓库?

解决方案

cURL 示例

1. 从AppCenter下载构建包

替换变量为你的实际信息,执行命令即可将构建包下载到本地:

# 替换为你的AppCenter配置信息
APPCENTER_TOKEN="你的AppCenter API令牌"
OWNER_NAME="应用所有者名称"
APP_NAME="应用名称"
BUILD_ID="目标构建ID"
DOWNLOAD_PATH="./app_build.ipa" # Android项目替换为 ./app_build.apk

# 下载构建包
curl -H "X-API-Token: $APPCENTER_TOKEN" \
     -o $DOWNLOAD_PATH \
     "https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/builds/$BUILD_ID/download"

2. 上传至Headspin仓库

使用已获取的Headspin上传URI,执行PUT请求完成上传:

# 替换为你的上传URI和本地文件路径
UPLOAD_URI="你的Headspin上传URI"
LOCAL_FILE="./app_build.ipa" # Android项目替换为 ./app_build.apk

# 上传文件
curl -X PUT \
     -T $LOCAL_FILE \
     $UPLOAD_URI

JavaScript/TypeScript 示例(Node.js环境)

先安装依赖:npm install axios fs-extra,再运行以下代码:

import axios from 'axios';
import fs from 'fs-extra';

// 配置参数,替换为你的实际信息
const config = {
  appcenter: {
    token: '你的AppCenter API令牌',
    owner: '应用所有者名称',
    appName: '应用名称',
    buildId: '目标构建ID',
    downloadPath: './app_build.ipa' // Android项目替换为 ./app_build.apk
  },
  headspin: {
    uploadUri: '你的Headspin上传URI'
  }
};

// 从AppCenter下载构建包
async function downloadFromAppCenter() {
  const downloadUrl = `https://api.appcenter.ms/v0.1/apps/${config.appcenter.owner}/${config.appcenter.appName}/builds/${config.appcenter.buildId}/download`;
  
  const response = await axios({
    method: 'get',
    url: downloadUrl,
    headers: { 'X-API-Token': config.appcenter.token },
    responseType: 'stream'
  });

  const writer = fs.createWriteStream(config.appcenter.downloadPath);
  response.data.pipe(writer);

  return new Promise((resolve, reject) => {
    writer.on('finish', resolve);
    writer.on('error', reject);
  });
}

// 上传至Headspin仓库
async function uploadToHeadspin() {
  const fileData = await fs.readFile(config.appcenter.downloadPath);
  
  await axios({
    method: 'put',
    url: config.headspin.uploadUri,
    data: fileData,
    headers: { 'Content-Type': 'application/octet-stream' }
  });
}

// 执行完整流程
(async () => {
  try {
    await downloadFromAppCenter();
    console.log('构建包下载完成');
    await uploadToHeadspin();
    console.log('成功上传至Headspin仓库');
  } catch (error) {
    console.error('操作失败:', error);
  }
})();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:47:17