python中使用Azure Blob存储

使用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是一 阅读详情

##概述:
Azure Blob Storage是在云上将非结构化数据存储为对象或者blob形式。Blob存储可以存任何形式的文本或二进制数据,比如:文档、媒体文件或者app(应用程序安装包)。Blob存储也可以当成对象存储。

这篇文章将会演示使用Blob存储的常见场景。这个例子使用python写的,并且使用了Microsoft Azure Storage SDK for Python.这个场景包括上传、展示、下载和删除blobs。

##Blob存储是什么?
Azure Blob存储是一种存储大量非结构化对象数据的服务,比如文本、二进制数据,可以从世界上的任何地方通过HTTP或HTTPS访问。你可以通过Blob存储向整个世界开放自己的数据,也可以单独为自己存储应用程序数据。

Blob存储的常用方法包括:

  • 直接向浏览器提供图片或文件
  • 提供分布式访问文件Storage Resource Provider Client Library For .NET
  • 流媒体音频和视频
  • 存储数据的备份和恢复、故障恢复和归档
  • 通过本地或azure托管服务方便于分析存储数据

##Blob存储的思想
Blob存储包括以下几个组成部分:

帐号、容器、blob(数据)

Storage Account(存储帐号):所有访问Azure Storage是通过一个存储帐号进行的。这个存储帐号可以是一个通用存储账户或者一个Blob存储帐号(专门用来存储对象、blobs)。更多关于存储帐号的详细信息,见Azure storage account。

容器:一个容器提供一组blobs的集合。所有的blobs必须置于一个容器中。一个帐号可以包含一个不限数量的容器。一个容器可以存储不限数量的blobs。注意:容器名必须要小写。

Blob(二进制大对象):一个任意类型和大小的文件。Azure Storage提供三种blobs类型:block blobs(块)、page blobs(页)、append blobs(附加)。

block blobs(块对象)非常适合存储文本或二进制文件,比如文档和媒体文件。Append blobs(附加对象)与block blobs相似,因为他们由块组成,但他们是附加操作的优化,因此,他们在日志场景中很有用。一个单一的块blob或append blob可以包含50000个,且每个达到4M,总大小可以超过195G(4M*50000)。

Page blobs可以达到1T大小,且在频繁的读写上显得更加有效。Azure虚拟机使用page blobs作为操作系统和数据硬盘。

更多关于命名容器和blobs的细节,见: Naming and Referencing Containers, Blobs, and Metadata.

##创建一个Azure存储帐号
创建你首个Azure存储帐号的最简单方式是使用Azure Portal。了解详情,见Create a storage account。

你也可以通过使用Azure PowerShell、Azure CLI或者Storage Resource Provider Client Library for .NET。

如果你暂时不想创建帐号,也可以使用Azure storage模拟帐号并在本地环境下测试代码。更多信息,见Use the Azure Storage Emulator for Development and Testing。

##创建容器
基于你想要使用的二进制文档对象类型,创建一个BlockBlobService、AppendBlobService或者PageBlobService对象。以下代码使用了一个BlockBlobService对象。将以下代码放在每个你想要通过编程方式访问Azure Block Blob Storage的Python文件顶端附近。

from azure.storage.blob import BlockBlobService

以下代码使用存储帐号名和key创建了一个BlockBlobService对象。使用你的帐号和key替换myaccount和mykey。

block_blob_service = BlockBlobService(account_name='myaccount', account_key='mykey')

Azure Storage中的每个blob对象必须存在于一个容器中。容器是blob名称的要素。例如,mycontainer是以下blob URI名字的一部分。

https://storagesample.blob.core.windows.net/mycontainer/blob1.txt
https://storagesample.blob.core.windows.net/mycontainer/photos/myphoto.jpg

容器名必须是合法的DNS名称,可用以下规则来确认:
1.容器名必须以字母或数字开头,且只能包含字母、数字和(-)分隔符。
2.每个分隔符(-)只能在前面,字母和数字在后面;不能连续使用分隔符。
3.所有容器中的字母必须小写。
4.容器名必须有3-63个字符组成。

注意:
容器名必须小写,如果你包含了大写字母,或者违反了容器命名规则,你将收到400错误。

下面的示例代码中,你可以使用BlockBlobService创建一个不存在的容器。

block_blob_service.create_container('mycontainer')

默认情况下,新创建的容器是私有的,因此,在你从容器中下载blobs之前必须将帐号key列入说明。如果你想让每个人都能访问容器中的blob文件,你可以创建容器并使用以下代码来提高公开访问的等级。

   from azure.storage.blob import PublicAccess
    block_blob_service.create_container('mycontainer', public_access=PublicAccess.Container)

作为一种操作,你可以使用以下代码来修改已创建的容器:

block_blob_service.set_container_acl('mycontainer', public_access=PublicAccess.Container)

修改后,网络上的每个人可以看到公开的容器中的blob文件,但只有你可以修改或删除他们。

##上传blob文件到容器中

为了创建一个block blob并上传数据,有4中方法:使用路径、使用流、字节、文本。它们是执行超过64MB数据组块的高级方法。
create_blob_from_path从单独的路径上传文件目录,create_blob_from_stream从一个单独打开的文件或流上传目录,create_blob_from_bytes上传一组字节数组,而create_blob_from_text使用单独的编码(默认utf-8)上传文本值。

下面的例子上传了sunset.png目录文件到myblob存储中。

from azure.storage.blob import ContentSettings
block_blob_service.create_blob_from_path(
    'mycontainer',
    'myblockblob',
    'sunset.png',
    content_settings=ContentSettings(content_type='image/png')
)

在容器中展示存储

为了在容器中展示所有的存储blob,使用list_blobs方法。这个方法返回一个生成器。以下代码输出容器中每个blob存储的名字到控制台。

generator = block_blob_service.list_blobs('mycontainer')
for blob in generator:
    print(blob.name)

下载存储文件
为了从blob存储中下载存储数据,使用get_blob_to_path、get_blob_to_stream、get_blob_to_bytes或者get_blob_to_text方法。它们是执行超过64MB数据组块的高级方法。
下面的例子示范了使用get_blob_to_path方法来下载mublob存储下的目录并将其存为out-sunset.png文件。

block_blob_service.get_blob_to_path('mycontainer', 'myblockblob', 'out-sunset.png')

删除一个blob存储

最后为了删除一个blob,调用delete_blob方法。

block_blob_service.delete_blob('mycontainer', 'myblockblob')

写一个追加blob

追加blob存储适用于追加操作,例如日志。与块存储一样,append blob由块组成,但是当你向append blob中追加一个块时,它总是在末尾添加。你无法更新或删除append blob中已经存在的块。block Id不能被暴露体现他们是block blob。
每个append block可以是不同的大小,上限是4MB,并且一个append blob可以存储最多50000个块。append blob最大大小可以略超过195GB(4MB*50000)。
下面的例子创建一个新的append blob并且追加了一些数据,模拟一个简单的日志操作。

from azure.storage.blob import AppendBlobService
append_blob_service = AppendBlobService(account_name='myaccount', account_key='mykey')
 
# The same containers can hold all types of blobs
append_blob_service.create_container('mycontainer')
 
# Append blobs must be created before they are appended to
append_blob_service.create_blob('mycontainer', 'myappendblob')
append_blob_service.append_blob_from_text('mycontainer', 'myappendblob', u'Hello, world!')
 
append_blob = append_blob_service.get_blob_to_text('mycontainer', 'myappendblob')
Azure blob:python实现上传图片功能 【代码】Azure blob:python实现上传图片功能。 阅读详情

相关推荐

Save OpenAI response in Azure function to Blob storage

将 OpenAI 的响应保存在 Azure 函数中到 Blob 存储

suiusoar 1506

如何在python中使用Azure Blob存储

概述: Azure Blog存储是在云上将非结构化数据存储为对象或者blob形式。Blob存储可以存任何形式的文本或二进制数据,比如:文档、媒体文件或者app(应用程序安装包)。Blob存储也可以当成对象存储。 这篇文章将会演示使用Blob存储的常见场景。这个例子使用python写的,并且使用了Microsoft Azure Storage SDK for Python.这个场景包括上传、展示

csdnwws的博客 3133

CST STUDIO SUITE 2023安装

破解工具的Crack文件夹内有一个名为「CST Studio Suite 2022」的文件夹,这也是于CST的安装目录同名的文件夹,直接把它拷贝到CST Studio Suite 2022的同级路径下即可,比如你的CST安装路径为:D:\Program Files\CST Studio Suite 2022,则将Crack目录内的「CST Studio Suite 2022」文件夹复制到 D:\Program Files\ 这个级别的路径下即可。软件百度网盘链接放在文章末尾啦!先不着急启动CST或者激活。

m0_49516223的博客 4122

Python 中使用 Azure Blob 存储

本文介绍如何使用适用于 Python 的 Azure 存储客户端库来上传 blob。你可以上传 blob,打开 blob 流并写入流,或者上传带有索引标记的 blob。Azure 存储中的 Blob 已组织成容器。必须先创建容器,才能上传 Blob。

清平乐的技术专栏 876

基于CatBoost回归模型的完整预测分析:从建模到SHAP可解释性分析

本文介绍了使用CatBoost回归模型进行完整预测分析的流程。首先导入必要的Python库并加载数据,进行数据预处理包括训练测试集划分和归一化处理。然后通过网格搜索优化CatBoost超参数,使用最优参数训练模型并评估预测性能。结果显示模型具有较高的决定系数(R²=0.9944)和较低的误差指标(RMSE=0.0696)。接着进行残差分析和正态性检验,发现残差基本服从正态分布。最后通过SHAP分析实现模型可解释性,识别关键特征影响。该方法为梯度提升树在回归问题中的应用提供了完整解决方案。

fx666_的博客 746

如何导入su_利用GIS快速生成SU场地模型

01|前言:进入2021年了,希望大家也是一个新的开始。告诫自己多写文章多更新,多读点书多旅行。然而元旦由于出去玩了4天,积累了一些事情要处理,一直没有时间好好写点东西。今天给大家带来的分享主题叫“利用GIS快速生成SU场地模型”。相关的视频方法其实B站上也有,但我相信视频很多人都不会看,我自己也是。直接给大家上操作流程。主要的操作步骤是【获取场地的矢量shp文件】—【导入ArcScen...

weixin_33806859的博客 9813

使用Python连接Azure Storage进行数据交互

使用Python来和Azure Storage进行数据上传和下载

糕糕的博客 984

excel wind插件使用_Python和wind的交互—在债券中的应用

个人认为学会了怎么用python和wind交互以及怎么用python处理Excel数据,就基本能替换日常很多琐碎的债券工作,还不用担心Excel某个值改变了导致整个报表都毁了。事实上在python调用wind函数和在Excel中调用函数一样简单,只要会基本的操作就够了。下面详细的介绍如何用python和wind进行交互。首先安装好python+pycharm+wind。因为python...

weixin_39863918的博客 5330

如何使用Python列出Azure云存储中特定子目录内的所有blob?

假设你正在开发一个文件管理应用,需要从Azure Blob Storage中查找并删除特定子目录内的所有Blob。使用`list_blobs`方法,传入`include_trailing_delimiter=True`以包括具有“/”后缀的目录项。在代码中,我们需要创建一个`BlobServiceClient`对象以连接到你的Azure存储账户。如果需要,可以使用`delete_blob`方法来删除这些Blob。如何使用Python列出Azure云存储中特定子目录内的所有blob?### 应用场景和示例。

463

把对讲门铃(控制底楼铁门)接入米家服务器

今天讲个跟SDR或者无人机无关的东西,技术含量不高,但是方便了我的生活。 现在家门有智能锁,汽车也可以远程解锁发动,NFC门禁也可以用某些手机复制,唯独楼下的铁门,必须用老式对讲门铃控制。 也就是说其它钥匙都可以不带,就剩这个钥匙还必须随身携带。 另外有时候人不在家,不能开楼下铁门,快递员也没法把东西送上楼。 ......

老邵的开源世界 6550

SAP Joule Studio 能不能用来开发 skill:可以,但它开发的是 Joule 语境下的企业级 skill,而不是替代所有 SAP 开发技术的万能锤

SAP Joule Studio 专为开发Joule技能(Joule skills)而设计,这些技能是执行确定性单步业务动作的原子能力。它通过自然语言接口连接SAP和非SAP系统,适合处理边界清晰、可审计的任务(如创建工单、查询发票)。Joule技能作为会话式业务编排层,与ABAP、CAP等核心技术互补而非替代。开发支持低代码和专业代码两种方式,并具备企业级治理能力,但需要相应的BTP订阅和技术基础。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 201

python提取blob数据_快速入门:Azure Blob 存储库 v12 - Python | Microsoft Docs

您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.快速入门:使用 Python v12 SDK 管理 blobQuickstart: Manage blobs with Python v12 SDK07/24/2020本文内容本快速入门介绍如何使用 Python 管理 bl...

weixin_39646084的博客 907

基于深度学习的工业零件缺陷检测系统

工业零件缺陷检测系统摘要 本文介绍了一个基于深度学习的工业零件缺陷检测系统解决方案。该系统采用Faster R-CNN目标检测算法,结合PyTorch框架和OpenCV图像处理库,实现了对工业零件表面缺陷(如裂纹、划痕、凹坑等)的自动检测与定位。系统包含完整的开发流程:从数据采集与标注、数据增强预处理、模型构建与训练,到最终的评估与部署。相比传统机器视觉方法,该深度学习方案具有更强的特征表示能力和环境适应性,能够有效提升工业质检的准确率和效率。文章详细阐述了系统架构设计、实现细节和优化策略,并提供了完整的代

huanghm88的专栏 286

Python 操作 Azure Blob Storage

笔者在《Azure 基础:Blob Storage》一文中介绍了 Azure Blob Storage 的基本概念,并通过 C# 代码展示了如何进行基本的操作。最近笔者需要在 Linux 系统中做类似的事情,于是决定使用 Azure 提供的 Azure Storage SDK for Python 来操作 Blob Storage。这样今后无论在 Win...

weixin_33972649的博客 187

YOLOv8 | 代码逐行解析(二) | 从yaml文件到模型定义(代码逐行注释,小白必看)

本文给大家带来的是YOLOv8项目的解读,之前给大家分析了YOLOv8的项目文件分析,这一篇文章给大家带来的是模型训练从我们的yaml文件定义到模型的定义部分的讲解,我们一般只知道如何去训练模型,和配置yaml文件,但是对于yaml文件是如何输入到模型里,模型如何将yaml文件解析出来的确是不知道的,本文的内容接上一篇的代码逐行解析(一) 项目目录分析,本文对于小白来说非常友好,非常推荐大家进行阅读,深度的了解模型的工作原理已经流程,下面我们从yaml文件来讲解。

Snu77的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python连接blob

目录官网连接遇到的问题 官网 https://docs.microsoft.com/zh-cn/azure/storage/blobs/storage-quickstart-blobs-python-legacy 但是这个官网给的你发现连不上 连接 pip install azure-storage-blob==2.1.0 from azure.storage.blob import * #获取连接 blob_service = BlockBlobService(account_name='account

882

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

azure blob_Azure和Python:列出容器Blob

azure blobConnect to Azure using a simple Python script. 使用简单的Python脚本连接到Azure。 Recently, I had come across a project requirement where I had to list all the blobs present in a Storage Account contai...

weixin_26737625的博客 917

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

如何从Azure Python函数BLOB输入绑定中读取拼图文件?

其中`YourStorageAccountConnectionString`是你的存储账户的连接字符串,`your-container-name`是你上传拼图文件的容器名称。注意:在处理图像或任何其他形式的文件时,确保正确地处理文件的编码、格式以及可能出现的异常。3. 在函数代码中,你可以通过参数`inputBlob`来读取拼图文件的内容。4. 最后,你需要在Azure门户中触发函数,确保它能够从指定的BLOB存储容器中读取拼图文件。如何从Azure Python函数BLOB输入绑定中读取拼图文件?

279

Connect China Azure Storage Blob By Container Token In Python SDK

简介: 基于Python SDK,使用Container Token操作container对象。关于Token的生成可以使用Storage SDK创建,也可以使用工具快速创建供测试。 示例代码: from azure.storage.blob import BlockBlobService account_name = 'yunewstoragetest' container_s...

dengao9681的博客 1309

【Azure Developer】使用 Python SDK连接Azure Storage Account, 计算Blob大小代码示例

问题描述免费优惠券 www.cps3.cn 在微软云环境中,使用python SDK连接存储账号(Storage Account)需要计算Blob大小?虽然Azure提供了一个专用工具Azure Storage Explorer可以统计出Blob的大小: 但是它也是只能一个Blob Container一个的统计,如果Container数量巨大,这将是一个繁琐的工作。而作为开发者,应该让代码来帮助完成。下文使用最快上手的Python代码来计算Blob中容量的大小。 完整代码 import os...

nidongla的博客 332

使用Python将文件上传到blob

1. 导入相关包及配置 # -*- coding:utf-8 -*- # pip install azure-storage-blob==1.5.0 import os, sys import argparse import pandas as pd from azure.storage.blob import BlockBlobService import time from tabulate import tabulate import datetime as dt FilePath = os.pat

qq_33246702的博客 1494

Azure blob file触发Azure function

求助:如何将Azure storage blob的文件feed进已经deploy到Azure function 的python function进行处理? 目前我有一份已经写好的音频处理文件,只需要将本地的文件feed到function里面就可以提取音频信号。现在我的任务是要将这个python function 部署到Azure function当中,之后只要将文件upload到Azure blob上,然后触发这个python function去处理。目前的问题是,我不知道该如何将blob中的文件feed到

weixin_42906439的博客 335

Azure Blob 用代码上传和存储文件

摆脱图形用户界面 (GUI),实现对Azure资源的自动化、可复现和版本控制的管理。使用Azure SDK for Python是实现此目标的标准方法。: Azure AI Search的所有组件(索引、索引器、数据源、技能组)都可以通过azure-search-documents Python库进行编程创建和管理。你需要使用SearchIndexClient和SearchIndexerClient这两个客户端对象,它们分别用于管理索引定义和索引器相关组件。

2301_79306982的博客 1188
上一篇: ubuntu在vim里搜索关键字
下一篇: 大数据处理中的实时流式处理
leaf13
博客等级 码龄8年 18粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值