python - 如何将文件上传到 Azure Blob 存储?
问题描述
我需要每天从本地系统将文件上传到 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-blob-python-quickstart/blob/master/example.py
它可以像这样快(来自快速入门文档:https ://docs.microsoft.com/en-us/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'))
这应该会让你很快朝着正确的方向前进。
推荐阅读
- reactjs - 我可以使用 RollupJs 为我的组件库生成组件级 css 文件吗?
- javascript - vue-select:选择具有相同标签的多个选项
- android - 使用 iframe 播放 Html 时,Android WebView 显示空白页
- rust - 使用 ARM GDB 调试 STM32 的 Rust 固件时,回溯充满重复条目
- django - Django 版本和数据库支持 (MariaDB)
- python - 如何使用 python 获取完全缓冲的网站源
- windows - ffmpeg -vg -filtercomplex,创建带有颜色 kway 和有限 fps 的 gif
- mongodb - 在 kubernetes pod 中执行时 Mongodb 连接错误
- mysql - 锁定如何使用复合键进行更新查询?
- html - 将 png 放在 svg 中的目的是什么?