我有一个worker角色,用来从Blob Storage OnStart中提取数据。目前,我正在通过上载test.txt文件然后将其下载到本地目录来测试此功能。此功能运行良好。
我现在要将文件夹上载到Blob存储。此文件夹包含批处理脚本以及批处理脚本调用的几个可执行文件。
推荐的方法是什么?我认为压缩文件夹并上传 *.zip文件很容易...但是,一旦我将其下载到本地以供工作者角色处理,在没有任何第三方库的情况下,我如何解压缩它呢?
如果有更好的选择,我愿意接受任何建议。感谢这里的帮助--这个社区在我成长的过程中给了我巨大的帮助:)
8条答案
按热度按时间d6kp6zgx1#
您可以使用
upload-batch
:这会将源目录中找到的所有文件复制到blob存储中的目标目录。
必须指定SAS令牌(通过
--sas-token
)或帐户密钥。还能和服务负责人一起工作。
xv8emn3q2#
使用az登录登录Azure cli
1.使用
az storage blob upload additional-params
上传文件1.要上载文件夹,请使用
az storage blob upload-batch additional-params
有关完整命令,请参阅此处
x7yiwoj43#
您可以采取两种方法:单文件(例如zip)或多文件(每个文件都在自己的blob中)。下面是我的看法,然后是关于解压缩的注意事项:
单个zip文件
这是一种非常简单的方法来维护一组分组的文件,比如Apache安装,或者一组静态资源。从blob下载到本地存储极其简单。而且,zip文件可以处理任何级别的嵌套目录。
缺点:要更新一个文件,你需要创建一个新的zip;无法简单地上载一个修改的资产。
单个斑点
当你需要快速更新单个文件而不用担心其他文件时,单独的blob是很好的。同样,你可以直接链接到这些blob,不管是公共的还是(使用共享访问签名)网页中的私有和嵌入链接等。看看我的答案here,以及@Sandrino的,作为这个例子。哦,如果你打算通过CDN暴露blob,它们必须是单独的一团。
缺点:没有到嵌套目录的绝对Map。Blob存储是按照account\container\blob排列的。虽然你可以模拟嵌套文件夹,但你需要做一些工作来Map单个文件。要下载单个Blob,你需要获取容器并调用
ListBlobs()
来枚举单个Blob名称。如何解压缩
Eclipse项目提供了一个vbs脚本,使用起来很简单。从Visual Studio项目(或任何脚本)中,我会考虑下载类似7zip的东西,它是免费的,安装起来也很简单。然后将zip从blob存储下载到本地存储(在适当的文件夹中),并将其传递给7zip。
我希望这能给你提供足够的指导来做出正确的决定。如果是 me,我正在存储一个构建(像tomcat),我会把整个目录结构保存在一个zip中。这给了我保证,我没有因为修改一个文件而破坏什么。而且......我可以很容易地保存tomcat版本的运行历史,使用多个zip(在单独的blob中)。
fjnneemd4#
随着AZCOPY工具的发布,您可以在一行中完成此操作。详情here。
e3bfsja25#
你可以使用Azure存储资源管理器https://azure.microsoft.com/en-us/features/storage-explorer/来上传文件夹。它在后台使用azcopy,但有一个用户界面很好。
vd8tlhqk6#
使用Azure Storage Explorer。安装后,你必须登录,然后你可以选择你的Blob和上传文件夹一样,正常的上传过程。
我遇到了同样的问题,试图解决上传压缩文件夹的问题,但在Azure中没有解压缩文件夹的选项。
6tqwzwtp7#
尝试使用Azure CLI和
storage-preview
扩展例如,如果你有一个目录“草稿”,你想上传所有的内容
q9rjltbz8#
你可以简单地使用storage explorer来完成这个任务。我觉得它很好用。它使用azcopy,如果你想的话你可以复制命令。你可以使用连接字符串来连接你的storage帐户。