问题描述
不同订阅下的Azure Storage Account中Blob资源可以同步吗?
解决方案
可以。通过Azure 官方推荐的Storage Account工具来完成 Copy/Paste 操作。操作步骤如下图:
详细查看Stroage Explorer输出的日志,使用的正是AzCopy命令。 命令的格式为:
./azcopy.exe copy "https://blob1.blob.core.windows.net/casebotwebapilogs/casebotwebapi/*?sv=2018-03-28&ss=b&srt=co&sp=rl&se=2020-12-17T07%3A44%3A43Z&sig=xxxxxxxxxxxxxx" "https://blob2.blob.core.chinacloudapi.cn/test123/casebotwebapi?se=2021-01-09T07%3A45%3A46Z&sp=rwl&sv=2018-03-28&sr=c&sig=xxxxxxxxxxxxxxxxxx" --overwrite=prompt --blob-type Detect --s2s-preserve-access-tier=false --recursive;
在查看azcopy copy的说明,支持以下源与目标之间的拷贝情况:
Copies source data to a destination location. The supported directions are:
- local <-> Azure Blob (SAS or OAuth authentication)
- local <-> Azure Files (Share/directory SAS authentication)
- local <-> Azure Data Lake Storage Gen 2 (SAS, OAuth, or shared key authentication)
- Azure Blob (SAS or public) -> Azure Blob (SAS or OAuth authentication)
- Azure Blob (SAS or public) -> Azure Files (SAS)
- Azure Files (SAS) -> Azure Files (SAS)
- Azure Files (SAS) -> Azure Blob (SAS or OAuth authentication)
- Amazon Web Services (AWS) S3 (Access Key) -> Azure Block Blob (SAS or OAuth authentication)
当然也可以使用对应语言的SDK,编写代码对Blob进行操作。可以参考Azure Blob的官方原子示例:https://docs.azure.cn/zh-cn/storage/common/storage-samples-dotnet?toc=/storage/blobs/toc.json