不完整的用于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"
}
```
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"
}
```