如何使用 azure-cli 在 Azure 上设置 blob 的 contentType?

How can I set the contentType of a blob on Azure using azure-cli?

我正在尝试更新已上传文件的 contentType 或至少能够重新上传具有正确 contentType 的文件。

在我的例子中,我正在上传 css,但默认情况下它的内容类型为 application/octet-stream。

据我所知,命令行参考没有说明如何管理 blob 的属性

编辑

如果你只是创建文件显然你可以使用

azure storage blob create -f {file_name} -p contentType=text/css

但是我还没有找到编辑的方法。

查看源代码here,我认为无法使用 azure-cli 更新 blob 的属性。

如果您有兴趣,可以使用 Node SDK for Azure Storage 并更新 blob 属性。例如,查看下面的示例代码:

var AZURE = require('azure-storage');
var blobService = AZURE.createBlobService("<account name>", "<account key>");
var container = '<blob container name>';
var blob = '<blob name>';
var newContentType = '<new content type e.g. text/css>'
blobService.getBlobProperties(container, blob, function(error, result, response) {
    if (!error) {
        var contentType = result.contentType;
        var cacheControl = result.cacheControl;
        var contentEncoding = result.contentEncoding;
        var contentMD5 = result.contentMD5;
        var contentLanguage = result.contentLanguage;
        var options = {
            'contentType': newContentType,
            'cacheControl': cacheControl,
            'contentEncoding': contentEncoding,
            'contentMD5': contentMD5,
            'contentLanguage': contentLanguage,
        };
        blobService.setBlobProperties(container, blob, options, function(error, result, response) {
            if (!error) {
                console.log('Properties updated successfully!');
            } else {
                console.log(error);
            }
        });     
    } else {
        console.log(error);
    }
});

您现在可以使用 az storage blob update from the Azure CLI (source on GitHub) 设置 blob 属性。例如,将名为 $container 的容器中名为 $blob 的 blob 的 Content-Type 设置为 text/css

az storage blob update -c "$container" -n "$blob" --content-type text/css