使用Python对Blob进行操作

具体操作如下:

  • 创建
  • 修改
  • 上传
  • 下载
  • 删除

先决条件:安装好Python环境,可参考Python安装

开始之前:安装包azure-storage-blob

# 这里使用1.5.0版本的azure-storage-blob
pip install azure-storage-blob==1.5.0

下面开始Blob的操作:

开始之前,我们需要明确Storage Blob的层级结构,首先是有一个account账户,在这个账号下创建容器,再接下来才是blob数据。
从理解上就相当于,account是一个父级目录,container是父级目录下的一个文件夹,blob就是这个文件夹下的具体数据文件(如csv\txt\img等)
account(账号) -> container(容器) -> blob(数据)

1. 根据account_name和account_key创建blob服务

import os
from azure.storage.blob import BlockBlobService
from azure.storage.blob import PublicAccess
account_name = 'xxx' # 这里输入你的account_name
account_key = 'xxx' # 这里为account_key主密钥
endpoint = 'core.chinacloudapi.cn'
# 创建blob服务
blockblobservice=BlockBlobService(account_name=account_name, account_key=account_key,endpoint_suffix=endpoint)
# 使用dir(blockblobservice)可以查看blockblobservice的所有方法

2. 创建和修改container容器

# 创建container容器
container_name = 'containernametest'
blockblobservice.create_container(container_name) #默认创建的是私有的
# 修改blob
blockblobservice.set_container_acl(container_name, public_access=PublicAccess.Container) # 修改为公有访问

3. 上传本地文件到container容器中

file_path = 'D:/testcsv/EDW_DIM_CALENDAR/EDW_DIM_CALENDAR.csv'
blob_name = 'EDW_DIM_CALENDAR/EDW_DIM_CALENDAR.csv'
blockblobservice.create_blob_from_path(container_name=container_name,blob_name= blob_name,file_path=file_path)

参数说明:

  • container_name:容器名称
  • blob_name:文件上传到blob中的文件名称(绝对路径),相当于在container_name这个目录下再创建的路径,这里的名字可以与参数file_path不一样,不一样时相当于做了个重命名。
  • file_path:要上传的文件的本地路径

如上述代码执行后,就会把本地文件’D:/testcsv/EDW_DIM_CALENDAR/EDW_DIM_CALENDAR.csv’,上传到容器containernametest中,文件也会以类似win下的文件夹层级展示。

4. 下载container容器中的文件到本地数据

参数与上传基本一致

blob_name = 'EDW_DIM_CALENDAR/EDW_DIM_CALENDAR.csv'
local_down_path =  'D:/testcsv/EDW_DIM_CALENDAR/EDW_DIM_CALENDAR-11.csv'
blockblobservice.get_blob_to_path(container_name=container_name,blob_name=blob_name,file_path=local_down_path)

5. 删除

blockblobservice.delete_blob(container_name=container_name,blob_name=blob_name)

6. 遍历查看container中的blob数据

blobs = blockblobservice.list_blobs(container_name)
print(type(blobs))
for blob in blobs:
    print(blob.name)
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Python中处理blob可以使用Azure Storage SDK提供的BlockBlobService类。首先,你需要根据account_name和account_key创建一个blob服务。可以使用以下代码创建blob服务\[2\]: ```python import os from azure.storage.blob import BlockBlobService from azure.storage.blob import PublicAccess account_name = 'xxx' # 这里输入你的account_name account_key = 'xxx' # 这里为account_key主密钥 endpoint = 'core.chinacloudapi.cn' # 创建blob服务 blockblobservice = BlockBlobService(account_name=account_name, account_key=account_key, endpoint_suffix=endpoint) ``` 创建blob服务后,你可以使用blockblobservice的各种方法来处理blob。例如,你可以列出container中的所有blob,并打印它们的名称\[1\]: ```python blobs = blockblobservice.list_blobs(container_name) for blob in blobs: print(blob.name) ``` 另外,你还可以下载blob到本地文件夹。使用`get_blob_to_path`方法,指定container_name、blob_name和本地文件路径,即可将blob下载到指定路径\[3\]: ```python blob_name = 'EDW_DIM_CALENDAR/EDW_DIM_CALENDAR.csv' local_down_path = 'D:/testcsv/EDW_DIM_CALENDAR/EDW_DIM_CALENDAR-11.csv' blockblobservice.get_blob_to_path(container_name=container_name, blob_name=blob_name, file_path=local_down_path) ``` 这样,你就可以使用Python处理blob了。 #### 引用[.reference_title] - *1* *2* *3* [使用PythonBlob进行操作](https://blog.csdn.net/qq_33246702/article/details/107319610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值