繁体   English   中英

如何将文件上传到Azure Blob存储?

[英]How to upload files to azure blob storage?

我每天需要从本地系统将文件上传到azure blob容器。 我将azcopy与sas一起使用。 但是我遇到的是容器的SAS在每次刷新时都会不断变化。 因此,有没有更好的方法可以使用python或azcopy上传文件。 还是有任何方法无需登录即可从天蓝色获取SAS令牌并将该SAS令牌传递给azcopy命令? 截至目前,我从azcopy使用此命令

.\azcopy "Sourcefilepath" "Destblobpath?SAS_Token" --recurcive=true

每天我都应该登录到azure,以获取SAS令牌并传递上述命令。 我尝试使用。\\ azcopy登录,但登录成功,但是无法发送文件

.\azcopy "Sourcepath" "Destpath"

不知道我在哪里做错了。

如果您使用的是python,建议您使用Azure python sdk进行上传。 您可以在此示例中看到更多信息...

https://github.com/Azure-Samples/storage-blobs-python-quickstart/blob/master/example.py

可以如此快速地(从快速入门文档: https : //docs.microsoft.com/zh-cn/python/api/overview/azure/storage? view = azure-python)与您的azure blob接口存储帐户。 只需输入一些逻辑即可递归遍历目录并上传每个文件。

首先,请确保pip安装所需的软件包,然后从门户网站获取您的帐户名(blob存储名)和访问密钥...将它们插入即可,一切顺利。

pip install azure-storage-blob azure-mgmt-storage

然后在这里写一些python代码...

from azure.storage.blob import BlockBlobService, PublicAccess

blob_service = BlockBlobService('[your account name]','[your access key]')

blob_service.create_container(
    'mycontainername',
    public_access=PublicAccess.Blob
)

blob_service.create_blob_from_bytes(
    'mycontainername',
    'myblobname',
    b'hello from my python file'
)

print(blob_service.make_blob_url('mycontainername', 'myblobname'))

这应该使您迅速朝正确的方向前进。

您遇到的SAS问题实际上正在按预期的方式工作。 SAS有有效期,您可以随时取消它。 因此,您将需要尽快使用新的。

我建议使用python SDK,因为它使用存储密钥和帐户名,除非旋转密钥,否则它不会过期。 我在python SDK中编写了一些工具/示例,可以执行所有操作:列表,上传和删除: https : //github.com/adamsmith0016/Azure-storage

随意克隆并重复使用任何代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM