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

如何使用Drone.io上传文件至Azure Blob Storage(含.deb产物)

我平时做CI/CD的时候经常用Drone.io对接Azure Blob Storage,给你整理下通用流程和针对你的.deb产物文件的具体操作步骤:

通用方法核心要点

首先得准备好基础依赖:

  • 一个Azure存储账户,以及对应的存储容器(提前在Azure门户创建好,确保容器有写入权限)
  • 在Drone项目的Secrets中配置Azure存储的认证信息:通常是AZURE_STORAGE_ACCOUNT(存储账户名)和AZURE_STORAGE_KEY(账户访问密钥);如果用服务主体认证的话,需要配置AZURE_TENANT_ID、AZURE_CLIENT_ID、AZURE_CLIENT_SECRET

Drone上传到Azure Blob的核心逻辑就是:在pipeline中完成Azure认证,然后执行上传命令/调用插件完成文件上传。

针对.deb文件的具体实现

下面给你两种常用的实现方式,按需选择:

方式一:使用Azure CLI(灵活可控,适合复杂场景)

如果你的Drone基础镜像没有预装Azure CLI,需要先安装,然后登录存储账户再上传:

kind: pipeline
type: docker
name: upload-deb-to-azure

steps:
  # 第一步:安装Azure CLI(如果基础镜像已有可跳过)
  - name: setup-azure-cli
    image: ubuntu:latest
    commands:
      - apt-get update && apt-get install -y azure-cli

  # 第二步:上传.deb文件到Blob Storage
  - name: upload-deb-package
    image: ubuntu:latest
    environment:
      # 从Drone Secrets中读取凭证
      AZURE_STORAGE_ACCOUNT:
        from_secret: azure_storage_account
      AZURE_STORAGE_KEY:
        from_secret: azure_storage_key
    commands:
      # 登录Azure存储账户并上传文件
      - az storage blob upload 
          --account-name $AZURE_STORAGE_ACCOUNT 
          --account-key $AZURE_STORAGE_KEY 
          --container-name your-container-name  # 替换成你的容器名
          --file ./dist/your-package.deb       # 替换成.deb文件在工作目录的路径
          --name your-package-$(git rev-parse --short HEAD).deb  # 用Git短哈希命名,避免冲突

方式二:使用Drone官方Azure Blob插件(简洁高效)

Drone有官方的Azure Blob存储插件,不用手动安装CLI,配置更简洁:

kind: pipeline
type: docker
name: upload-deb-to-azure

steps:
  - name: upload-deb-to-blob
    image: plugins/azure-blob
    settings:
      # 从Drone Secrets读取存储账户信息
      account:
        from_secret: azure_storage_account
      key:
        from_secret: azure_storage_key
      container: your-container-name  # 替换成你的容器名
      source: ./dist/your-package.deb # 本地.deb文件路径
      target: your-package-$(date +%Y%m%d-%H%M).deb # 上传后的Blob名称,用时间戳避免冲突
      overwrite: true # 如果需要覆盖同名文件,设置为true,默认false
注意事项
  • 确保.deb文件的路径正确:Drone运行时的工作目录是你的代码仓库根目录,所以要根据构建阶段的产物输出路径填写source或--file参数
  • 命名策略:建议给上传的.deb文件加上版本号、Git哈希或时间戳,避免不同构建的产物互相覆盖
  • 权限验证:提前确认Azure存储账户的访问密钥有Blob写入权限,或者服务主体有对应的存储容器权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:18:01