首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python将图像上传到azure blob存储中

使用python将图像上传到azure blob存储中
EN

Stack Overflow用户
提问于 2019-09-06 06:34:38
回答 6查看 15.5K关注 0票数 6

我有一个名为images的图像目录,它包含如下图像文件:

代码语言:javascript
复制
images
    --0001.png
    --0002.jpg
    --0003.png

现在,我想将这个目录上传到具有相同文件结构的azure存储中。我查看了给出的这里这里示例代码,但是:

  1. 即使在安装azure-blob-storage之后,这个包中也没有BlobService这样的东西。
  2. 有什么地方清楚地记录了如何做到这一点吗?
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2019-09-06 07:30:35

这是我的示例代码,对我来说很好。

代码语言:javascript
复制
import os
from azure.storage.blob import BlockBlobService

root_path = '<your root path>'
dir_name = 'images'
path = f"{root_path}/{dir_name}"
file_names = os.listdir(path)

account_name = '<your account name>'
account_key = '<your account key>'
container_name = '<your container name, such as `test` for me>'

block_blob_service = BlockBlobService(
    account_name=account_name,
    account_key=account_key
)

for file_name in file_names:
    blob_name = f"{dir_name}/{file_name}"
    file_path = f"{path}/{file_name}"
    block_blob_service.create_blob_from_path(container_name, blob_name, file_path)

如下图所示,结果是来自Azure存储资源管理器的截图。

有关的API引用的详细信息,请参阅https://azure-storage.readthedocs.io/index.html

更新:我使用的Python版本是WindowsPython3.7.4,所需的包是azure-storage==0.36.0,您可以从https://pypi.org/project/azure-storage/上找到它。

  1. $ virtualenv test
  2. $ cd test
  3. $ Scripts\active
  4. $ pip install azure-storage

然后,您可以在当前的Python虚拟环境中通过python upload_images.py运行我的示例代码。

票数 4
EN

Stack Overflow用户

发布于 2019-09-06 07:27:06

在你链接的文件里。

这不是BlobService,而是BlobClient。

代码语言:javascript
复制
from azure.storage.blob import BlobClient

blob = BlobClient.from_connection_string("my_connection_string", container="mycontainer", blob="my_blob")

with open("./SampleSource.txt", "rb") as data:
    blob.upload_blob(data)
票数 4
EN

Stack Overflow用户

发布于 2020-09-18 12:05:38

目前有两个版本的azure.storage.blob。如果您创建了一个Azure VM并在那里处理数据,那么您可以得到其中的任何一个。

旧版本要求(正如Adam Marczak所指出的):

代码语言:javascript
复制
from azure.storage.blob import BlobClient

blob = BlobClient.from_connection_string("my_connection_string", container="mycontainer", blob="my_blob")

with open("./SampleSource.txt", "rb") as data:
    blob.upload_blob(data)

而新的:

代码语言:javascript
复制
from azure.storage.blob import BlockBlobService

blob_service = BlockBlobService(account_name, account_key)

blob_service.create_blob_from_path(
    container_name, blob_name ,  full_file_path )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57816849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档