如何将文件上传到 Azure Blob 存储?
How to upload files to azure blob storage?
我需要每天从本地系统上传文件到 azure blob 容器。我将 azcopy 与 sas 一起使用。
但我遇到的是,用于容器的 SAS 在每次刷新时都会不断变化。
那么有没有更好的方法可以使用 python 或 azcopy 上传文件。
或者有什么方法可以在不登录的情况下从 azure 获取 SAS 令牌并将该 SAS 令牌传递给 azcopy 命令?
截至目前,我使用 azcopy
中的此命令
.\azcopy "Sourcefilepath" "Destblobpath?SAS_Token" --recurcive=true
每天我都应该登录到 azure 获取 SAS 令牌并通过上述命令。
我尝试了 .\azcopy login 并成功登录,但我无法使用
发送文件
.\azcopy "Sourcepath" "Destpath"
不知道我哪里做错了。
如果您使用 python,我建议您使用 azure python sdk 进行上传。你可以从这里的例子中看到更多...
https://github.com/Azure-Samples/storage-blobs-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'))
这应该会让您很快朝着正确的方向前进。
您看到的 SAS 问题实际上正在按预期工作。 SAS 有到期日,您可以随时撤销。因此,您将需要在新版本可用时立即使用它。
我建议使用 python SDK,因为它使用不会过期的存储密钥和帐户名称,除非轮换密钥。我在 python SDK 中写了一些 tools/Samples 执行所有操作:列表、上传和删除:https://github.com/adamsmith0016/Azure-storage
随意克隆和重新使用任何代码。
我需要每天从本地系统上传文件到 azure blob 容器。我将 azcopy 与 sas 一起使用。 但我遇到的是,用于容器的 SAS 在每次刷新时都会不断变化。 那么有没有更好的方法可以使用 python 或 azcopy 上传文件。 或者有什么方法可以在不登录的情况下从 azure 获取 SAS 令牌并将该 SAS 令牌传递给 azcopy 命令? 截至目前,我使用 azcopy
中的此命令.\azcopy "Sourcefilepath" "Destblobpath?SAS_Token" --recurcive=true
每天我都应该登录到 azure 获取 SAS 令牌并通过上述命令。 我尝试了 .\azcopy login 并成功登录,但我无法使用
发送文件.\azcopy "Sourcepath" "Destpath"
不知道我哪里做错了。
如果您使用 python,我建议您使用 azure python sdk 进行上传。你可以从这里的例子中看到更多...
https://github.com/Azure-Samples/storage-blobs-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'))
这应该会让您很快朝着正确的方向前进。
您看到的 SAS 问题实际上正在按预期工作。 SAS 有到期日,您可以随时撤销。因此,您将需要在新版本可用时立即使用它。
我建议使用 python SDK,因为它使用不会过期的存储密钥和帐户名称,除非轮换密钥。我在 python SDK 中写了一些 tools/Samples 执行所有操作:列表、上传和删除:https://github.com/adamsmith0016/Azure-storage
随意克隆和重新使用任何代码。