VSTS将文件复制到Azure Blob

时间:2018-02-23 14:43:29

标签: azure azure-devops azure-pipelines-build-task

我正在使用VSTS为iOS构建我的Xamarin Forms应用程序 - 我已经构建并发布了工件。

目前我使用Azure Blob来托管ipa - 我想在构建过程中添加一个步骤来复制到blob。到目前为止,我已经尝试过:

  • Azure文件复制
  • 卷曲
  • 复制文件(Azure文件共享)

但是没有任何效果。有人有这个工作吗?

1 个答案:

答案 0 :(得分:1)

使用VSTS Shell Task在将.ipa文件上传到Blob容器的Macos上运行脚本。下面的示例脚本。

请注意:

  • 所有大写字母变量'脚本中的值应该由任务作为参数传递给脚本(因此您需要修复此示例脚本);
  • 您需要在Macos计算机上安装python3:homebrew install python3
  • 您需要安装Azure SDK for Python,特别是:   sudo pip3 install azure-storagesudo pip3 install table

示例脚本:

from azure.storage.blob import BlockBlobService
import tables
import os
import sys
from azure.storage.blob import PublicAccess
from azure.storage.blob import ContentSettings

output_blob_service=BlockBlobService(account_name=STORAGEACCOUNTNAME,account_key=STORAGEACCOUNTKEY)
localfileprocessed = os.path.join(os.getcwd(),LOCALFILENAME) #assuming file is in current working directory

try:
  output_blob_service.create_container(CONTAINERNAME, public_access=PublicAccess.Container)
  output_blob_service.create_blob_from_path(CONTAINERNAME,BLOBNAME, localfileprocessed,
    content_settings=ContentSettings(content_type='application/octet-stream'))

except:
  print ("Something went wrong with uploading to the blob:"+ BLOBNAME)