如何从终端将文件上传到 Azurite?

问题描述 投票:0回答:1

我正在使用 Azurite,并希望从 bash 终端创建一个容器/上传一个 blob 等!

我尝试过像这样使用 Azure CLI::

az storage container create --account-name devstoreaccount1 
  --account-key Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw== 
  --name mycontainer

此操作会因身份验证失败而失败。顺便说一句,该示例中使用了正确的帐户密钥和名称。

我相信使用 Azure CLI 与 Azurite 对话是不可能的。

我想做的就是创建一个容器并从终端上传文件到其中。

有人知道这是否可能吗?或者我必须使用 Java 客户端(例如)来完成这项工作?

bash azure terminal azure-cli
1个回答
11
投票

根据我的测试,当我们使用帐户密钥和帐户名使用Azure CLI创建blob容器时,cli将使用

https
协议来连接Azurite。但是,默认情况下,Azurite 仅支持
http
协议。欲了解更多详情,请参阅这里
enter image description here

所以我建议您使用连接字符串将 Azurite 与 Azure CLI 连接,连接字符串会告诉 Azure CLI 使用

http
协议。

例如

  1. 创建容器
az storage container create -n test --connection-string "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;"

enter image description here

  1. 上传文件
az storage blob upload -f D:\test.csv -c test -n test.csv --connection-string "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;"

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.