21

我有一个辅助角色,用于从 Blob Storage OnStart 中提取数据。目前我正在通过上传 test.txt 文件然后将其下载到本地目录来对此进行测试。这工作正常。

我现在想将一个文件夹上传到 blob 存储。此文件夹包含批处理脚本以及批处理脚本调用的几个可执行文件。

完成此操作的推荐方法是什么?我认为压缩文件夹并上传 *.zip 文件会很容易......但是,一旦我在本地下载它以供工作人员处理,我将如何在没有任何第三方库的情况下解压缩它?

如果有更好的选择,我愿意接受任何建议。感谢您在这里的帮助 - 随着我的发展,这个社区对我来说是一个巨大的帮助:)

4

6 回答 6

12

您可以使用upload-batch

az storage blob upload-batch --destination ContainerName --account-name YourAccountName --destination-path DirectoryInBlob --source /path/to/your/data

这会将在源目录中找到的所有文件复制到 blob 存储中的目标目录。

必须指定SAS 令牌(通过--sas-token)或帐户密钥。

还可以与服务主体顺利合作。

于 2020-04-07T16:26:12.730 回答
6

使用 az login 登录到 azure cli

  1. 上传文件使用 az storage blob upload additional-params

  2. 要上传文件夹,请使用 az storage blob upload-batch additional-params

请参阅此处以获取完整的命令

于 2018-11-20T18:46:24.750 回答
3

您可以采用两种方法:单文件(例如 zip)或多文件(每个文件都在自己的 blob 中)。这是我的看法,然后是关于解压缩的说明:

单个 zip 文件

这是维护一组文件(如 apache 安装)或一组静态资源的一种非常简单的方法。从 blob 下载到本地存储非常简单。而且,一个 zip 文件可以处理任何级别的嵌套目录。

缺点:要更新单个文件,您需要创建一个新的 zip;无法简单地上传一项修改后的资产。

单个斑点

当您需要快速更新单个文件而不用担心其他文件时,单独的 blob 非常有用。此外,您可以直接链接到这些 blob,无论是公共的还是(使用共享访问签名)私有的,也可以在网页中嵌入链接等。请查看我的答案以及 @Sandrino 的示例。哦,如果您打算通过 CDN 公开 blob,则它们需要位于单独的 blob 中。

缺点:没有到嵌套目录的绝对映射。Blob 存储按 account\container\blob 排列。虽然您可以模拟嵌套文件夹,但您需要做一些工作来映射单个文件。要下载单个 blob,您需要获取容器并调用ListBlobs()以枚举单个 blob 名称。

如何解压

Eclipse 项目提供了一个简单易用的 vbs 脚本。从 Visual Studio 项目(或实际上任何脚本),我会考虑下载类似7zip的东西,它是免费且易于安装的。然后只需将 zip 从 blob 存储下载到本地存储(在正确的文件夹中),并将其传递给 7zip。

我希望这为您提供足够的指导以做出正确的决定。如果是并且我正在存储一个构建(如 tomcat),我会将整个目录结构保存在一个 zip 中。这让我确信我没有通过只修改一个文件来破坏某些东西。而且...我可以使用多个拉链(在单独的 blob 中)轻松地保留 tomcat 版本的运行历史。

于 2012-06-14T20:04:21.437 回答
3

随着 AZCOPY 工具的发布,您可以在一行中完成此操作。详情在这里

Cd "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy"

.\AzCopy /Source:C:\Users\folderName\ `
/Dest:https://storageAccountName.blob.core.windows.net/storageContainerName `
/DestKey:yourStorageAccountKey /S
于 2017-05-16T17:45:24.520 回答
3

您可以使用 Azure 存储资源管理器https://azure.microsoft.com/en-us/features/storage-explorer/上传文件夹。它在后台使用 azcopy,但很高兴有一个用户界面。

于 2020-01-30T09:46:09.050 回答
1

使用Azure 存储资源管理器。安装后您必须登录,然后您可以选择您的 Blob 并像正常上传过程一样上传文件夹。

我遇到了同样的问题,试图通过上传压缩文件夹来解决问题,但在 Azure 中没有解压缩文件夹的选项。

于 2020-02-14T12:17:50.643 回答