AZCopy:设置文件Content-Type

Cha*_*let 11 azure azcopy

我们尝试在部署脚本中使用AZCopy将一些资产直接上传到我们的存储中,该存储通过Azure上的CDN公开.

当我们上传文件时,Content-Type是application/octet-stream我们需要能够通过示例指定的text/javascript

有没有办法实现这个目标?我们不必为每种文件类型多次调用AZCopy.

小智 18

最新版本的AzCopy(v3.1.0和v4.1.0-preview)包含了对设置内容类型的支持,请在http://aka.ms/azcopy下载并查找更多详细信息.

更具体地说,您可以通过选项/ SetContentType:[content-type]设置内容类型.

AzCopy/Source:D:\ test\/ Dest:https://myaccount.blob.core.windows.net/myContainer//DestKey:key/Pattern:ab/SetContentType

AzCopy /来源:D:\ test\/ Dest:https://myaccount.blob.core.windows.net/myContainer//DestKey:key/Pattern:ab/SetContentType:video/mp4

如果未在/ SetContentType选项中指定"Content-Type",则AzCopy将根据其文件扩展名设置每个blob的内容类型.要为所有blob设置相同的内容类型,必须显式指定"Content-Type"的值,例如/ SetContentType:video/mp4.请注意,此选项仅在将blob上载到存储端点时适用.


joh*_*kes 7

我找到了一种使用 Azure Pipelines 执行此操作的方法:


- task: AzureFileCopy@4
  displayName: "Azure Storage - copy new files"
  inputs:
    SourcePath: '$(System.DefaultWorkingDirectory)/dist/*'
    azureSubscription: 'johnykes-PAYG(xxxxx-b455-4c4d-a8f8-c2a5fd479f10)'
    Destination: 'AzureBlob'
    storage: 'johnykeschatfrontend'
    ContainerName: '$web'

- task: AzureFileCopy@4
  displayName: "Azure Storage - overwrite .js files with correct Content Type"
  inputs:
    SourcePath: '$(System.DefaultWorkingDirectory)/dist/*.js'
    azureSubscription: 'johnykes-PAYG(xxxxx-b455-4c4d-a8f8-c2a5fd479f10)'
    Destination: 'AzureBlob'
    storage: 'johnykeschatfrontend'
    ContainerName: '$web'
    AdditionalArgumentsForBlobCopy: '--content-type "application/javascript"'
Run Code Online (Sandbox Code Playgroud)

如果您找到一种使用 Azure CLI 或以我的方式但递归(对于所有 .js 文件)执行此操作的方法,请告诉我。