不完整的用于python 3的windows azure库

azurepython3的Python项目详细描述


azure-python3是一个适用于windows azure的python3.3兼容库。这个软件包仍处于早期开发阶段。现在只实现了azure rest api的基本功能,因此,它可以用作自定义django存储提供程序。

Github:https://github.com/bunkerbewohner/azurepython3
也可以在pypi:https://pypi.python.org/pypi/azurepython3

此包的开发状态为"alpha"。虽然它可以工作,而且我成功地将azurestorage用于我的django项目,但可能仍然存在一些bug和场景,我没有测试过。因此,如果你想在python 3项目中使用azure,并且想使用这个库,欢迎在这方面提供任何帮助。


例如,```pip install azurepython3``.

这个包的重要类是**azurepython3.blobservice.blobservice**,它为Windows Azure blob存储提供了基本功能,以及**azurepython3.djangostorage.azure storage**,它基于azure的blob存储实现自定义django存储。

容器](创建容器)
*[列出容器](列出容器)
*[删除容器](删除容器)
*blobs
*[创建blob](创建blob)
*[列出blobs](列出blobs)
*[获取blob](获取blob)
*[删除blob](删除blob)
*[使用django中的azurestorage](在django中使用azurestorage)
*[从django的文件系统存储迁移到azurestorage](从django s的文件系统存储迁移到azurestorage)


\它需要windows azure帐户名和访问密钥才能工作。这些凭据可以直接作为参数传递。此外,helper方法blobservice.from_config可以从json文件中读取值,该文件包含一个属性为"account_name"和"account_key"的对象。

``python
来自azurepython3。blobservice import blobservice

包含"account_name"和"account_key"
svc=blobservice.from_config("credentials.json")

或者显式指定帐户凭据
svc=blobservice("myaccountname","myaccountkey")

"blobservice.create_container(name,access)`````的。以下值是可能的:

*``无```-容器将是私有的
*```容器`````-容器:指定对容器和blob数据的完全公共读取访问。客户端可以通过匿名请求枚举容器中的blob,但不能枚举存储帐户中的容器。
*````blob````-指定blob的公共读取访问。此容器中的blob数据可以通过匿名请求读取,但容器数据不可用。客户端无法通过匿名请求枚举容器中的blob。

`` python
来自azurepython3.blobservice import blobservice
svc=blobservice("myaccountname","myaccountkey")

svc.create_container("new private container",access=none)
svc.create_container("new public container",access="container")
svc.create_container("new protected container",access="blob")
````

**备注:*方法将返回t如果容器已成功创建,则返回rue。错误将导致相应的异常。具体来说,如果容器已经存在,则会引发状态代码为409(冲突)的httperror。


\方法``blobservice.list_containers()``将返回一个``container``实例列表,由名称、url、属性和元数据。

`` python
来自azurepython3.blobservice import blobservice
svc=blobservice.from_config("azurecredentials.json")
containers=svc.list_containers()

对于容器中的C:
打印("%s(%s)"%(C.name,打印(c.properties)
print(c.properties)
````

``从azurepython.blobservice import blobservice
svc=blobservice.discover()

`` python
``从azurepython.blobservice import blobservice


<如果svc.delete_container('containername'containername')
print(container已被删除)
`
``


<
//
//`
创建blob

以下代码示例使用blobservice将文件上载到现有容器。内容应该是字节的iterable,例如bytearray。可选地,内容编码可以传递一个参数。如果未提供,则不会指定任何对象。

`` python
来自azurepython3.blobservice import blobservice
svc=blobservice("myaccountname","myaccountkey")

file.read())

```

\可以使用``前缀``筛选名称以该前缀开头的blob。返回的blob只包含属性和元数据,而不包含内容。可以通过使用"blobservice.get blob(container,name,with_content=true)"``或在blob实例上调用"blob.download_bytes()```来分别下载内容。从azurepython3.blobservice导入blobservice
svc=blobservice.discover()

blobs=svc.list_blob s('container-name',prefix=none)
对于blob中的b:
打印("%s(%s)"%(b.name,b.url)
print(b.properties)
```

一个请求中的元数据和内容
blob=svc.get懔blob('container-name','file.ext',with懔content=true)
print(blob.content)

with_content=false)
如果打印内容:
打印(blob.download_bytes())
`````


删除")
```

如下例所示。

``python
from django.db import models
from azurepython3.django storage import azurestorage


class posting(models.model):
title=models.charfield()
image=models.imagefield(最大长度=255,存储=azurestorage(),
upload\u to="images/postings")
```



要使azure storage正常工作,您必须使用实际凭据(帐户名和访问密钥)和存储中现有容器的名称在"settings.py"中配置azure凭据,如下所示:

``python
#将其放入您的设置中。py
azure\u account\u name="myaccountname"
azure\u account\u key="myaccountkey"
azure\u default\u container="containername"
````

显式:

``python
storage=azurestorage(account\u name='myaccountname',
account\u key='myaccountkey',
container='containername'))
````

您可以使用"azuremigrate"命令将所有文件迁移到云存储中,如下一个示例所述。

将azurepython3添加到"已安装的应用程序"中,以访问"azuremigrate"命令,该命令将自动将所有这些文件上载到azure默认容器。这不是使用azurestorage本身所必需的,它只提供了admin命令。

`` python
已安装的应用程序=(
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanic',


将"媒体"投影到云存储容器"$root"

folder1/image1.jpg…确定
folder1/image2.jpg…确定

迁移完成
``````

unittests
----

由于尚未实现存储模拟,因此需要实际的Microsoft azure存储帐户来测试该功能。必须通过在``azurepython3/tests``目录中创建一个文件"azurecredentials.json"来提供它们,如下所示:

``json
{
"account-name":"myaccountname",
"account-key":"myaccountkey"
}
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Detect可以使用HTTP请求访问url   Java可访问翻译web服务?   来自Eclipse应用程序的java工作区   java Android映像未存储在存储器中   在R中读取xlsx文件后出现java获取错误   在Apache Tomcat中进行部署时,java Eureka客户端连接超时   Java中的置换问题/错误旅行商问题的最近邻算法的实现   java编程一个计算器,它按DMAS顺序执行操作   java无法访问findByDescriptionContaining(字符串描述)的lob流   java如何在春季用@ComponentScan惰性地加载所有bean?   连接到删除主机时java apache FTP客户端连接超时   用java将非整数日转换为实际日期?   C++ MMAP()与java MaPDyByTeffFor性能?   java后缀Trie匹配,匹配操作出现问题