[英]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.