吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3506|回复: 5
收起左侧

[Python 转载] 用python对Azure Blob Storage进行操作

[复制链接]
爆炒小提莫 发表于 2018-12-10 00:28
本帖最后由 爆炒小提莫 于 2018-12-10 00:51 编辑

由于项目中需要使用到微软的Azure Blob Storage进行文件存储,我们需要用python代码去做一些自动化的检测,在这里写一下自己的操作代码。
思路:把需要检查的文件名写在一张properties配置文件中或者维护在数据库中,在检查的时候把文件名读取到代码的列表里面,然后去遍历blob storage中的文件,查找文件是否已经存在于blob中。
对于blob的操作,网上比较少且基本一致,没有达到自己想要的效果,最好去看源码,或者用idea工具去看代码中的方法。

1.首先安装azure-storage:pip install azure-storage
2.BlockBlobService 的基本操作方法

BlockBlobService的方法图1

BlockBlobService的方法图1

BlockBlobService的方法图2

BlockBlobService的方法图2

BlockBlobService的方法图3

BlockBlobService的方法图3

3.blob的信息在properties里面
d.png


代码呈现:
[Python] 纯文本查看 复制代码
# -*- coding:utf-8 -*-
from azure.storage.blob import BlockBlobService

# Azure Blob Storgae Account
mystoragename = u"mystorageaccount"

# Azure Blob Storgae Key
mystoragekey = u"myaccountkey=="

# 配置连接到Blob Storage信息, 中国区需要配置endpoint_suffix='core.chinacloudapi.cn'
blob_service = BlockBlobService(account_name=mystoragename, account_key=mystoragekey,endpoint_suffix='core.chinacloudapi.cn')

# param str container_name: 一个已经存在于storage accout下的 container 名称
container_name = "mycontainer"
filelist=['a.txt','b.txt']
blob_file_list=[]

# blob 文件名称是带完整的路径的: /a/b/c/d.txt,一个完整路径的文件就是一个blob,需要截取最后的文件名
for blob in generator:
    #print(blob.name)
    #print(blob.properties.content_length) # blob的信息在properties里面
    print(blob.name.split("/")[-1])
    blob_file_list.append(blob.name.split("/")[-1])

file_not_in_blob = []
print(file_list)
for i in filelist:
    if i not in blob_file_list:
        print(i)
        file_not_in_blob.append(i)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
fsrank + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Quincy379 发表于 2018-12-10 08:00
厉害,膜拜大神!
psx1lin 发表于 2018-12-10 08:19
旧殇丶AS 发表于 2018-12-10 08:36
fsrank 发表于 2018-12-10 09:25
学习了, 谢谢
小黑LLB 发表于 2019-2-23 22:44
好厉害的样子 感谢分享 支持一波
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 04:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表