AiiDA插件,它使用S3对象存储作为文件存储库来提供存储后端。
项目描述
aiida-s3
aiida-s3插件,它提供各种存储后端,允许使用云数据存储服务,如AWS S3和Azure Blob Storage。
目前,以下存储后端可用
s3.psql_s3
:由PostgreSQL提供的数据库和由任何实现S3协议的服务提供的文件存储库,例如 minIO。s3.psql_aws_s3
:由PostgreSQL提供的数据库和由 AWS S3 提供的文件存储库。s3.psql_azure_blob
:由PostgreSQL提供的数据库和由 Azure Blob Storage 提供的文件存储库。
安装
推荐的安装方法是使用Python的pip
包安装程序
pip install aiida-s3
设置
要使用aiida-s3
提供的存储后端之一与AiiDA一起使用,您需要为其创建一个配置文件
-
列出可用的存储后端
aiida-s3 profile setup --help
-
通过将可用的存储后端作为参数传递给
aiida-s3 profile setup
,使用其中一个创建配置文件,例如:aiida-s3 profile setup s3.psql_s3
命令将提示您输入设置存储后端所需的信息。在输入所有信息后,存储后端将被初始化,例如创建数据库模式和创建文件容器。
-
为配置文件创建默认用户
verdi -p profile-name user configure --set-default
-
现在配置文件已经准备好与AiiDA一起使用了。可选地,您可以将其设置为新的默认配置文件
verdi profile setdefault profile-name
-
可选地,为了测试一切是否按预期工作,启动一个测试计算
verdi -p profile-name devel launch-add
测试
单元测试是通过pytest
实现的,并运行。要运行它们,需要安装具有tests
额外依赖项的包
pip install aiida-s3[tests]
插件提供了与各种需要凭据的服务(如AWS S3和Azure Blob Storage)的接口。要运行测试套件,必须提供这些凭据或必须对这些服务进行模拟。下面提供了每个支持服务的说明。
S3
基本的S3实现通过boto3
Python SDK进行接口。moto
库允许模拟此接口。这使得在无需任何凭据的情况下运行测试套件成为可能。要运行测试,只需执行pytest
pytest
默认情况下,S3的交互通过moto
进行模拟,无需实际凭据。要针对实际S3服务器运行测试,必须通过环境变量指定端点URL和凭据
export AIIDA_S3_MOCK_S3=False
export AIIDA_S3_ENDPOINT_URL='http://localhost:9000'
export AIIDA_S3_BUCKET_NAME='some-bucket'
export AIIDA_S3_ACCESS_KEY_ID='access-key'
export AIIDA_S3_SECRET_ACCESS_KEY='secret-access-key'
pytest
一个S3兼容对象存储的开源实现示例是minIO。可以使用Docker和docker-compose
轻松地在本地创建实例。只需将以下内容写入docker-compose.yml
version: '2'
services:
minio:
container_name: Minio
command: server /data --console-address ":9001"
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=supersecret
image: quay.io/minio/minio:latest
ports:
- '9000:9000'
- '9001:9001'
volumes:
- /tmp/minio:/data
restart: unless-stopped
然后启动容器
docker-compose up -d
然后可以使用上述方法使用环境变量运行针对服务器的测试。
AWS S3
AWS S3服务通过boto3
Python SDK进行接口。moto
库允许模拟此接口。这使得在无需任何凭据的情况下运行测试套件成为可能。要运行测试,只需执行pytest
pytest
默认情况下,与AWS S3的交互通过moto
进行模拟,无需实际凭据。要针对实际AWS S3容器运行测试,必须通过环境变量指定凭据
export AIIDA_S3_MOCK_AWS_S3=False
export AIIDA_S3_AWS_BUCKET_NAME='some-bucket'
export AIIDA_S3_AWS_ACCESS_KEY_ID='access-key'
export AIIDA_S3_AWS_SECRET_ACCESS_KEY='secret-access-key'
pytest
Azure Blob Storage
Azure Blob Storage通过azure-blob-storage
Python SDK进行通信。目前,没有很好的方法来模拟此库的客户端。因此,当在没有凭据的情况下运行测试时,需要模拟Azure Blob Storage客户端,测试将被跳过。要针对实际的AWS S3容器运行测试,必须通过环境变量指定凭据
export AIIDA_S3_MOCK_AZURE_BLOB=False
export AIIDA_S3_AZURE_BLOB_CONTAINER_NAME='some-container'
export AIIDA_S3_AZURE_BLOB_CONNECTION_STRING='DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net'
pytest
指定的容器不必已存在,它将自动创建。连接字符串可以通过Azure门户获得。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
aiida-s3-0.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 45de90b938a05715f151fa60c187252b310d497a64e8fb2b1ec2d86a5857a415 |
|
MD5 | 4c2c6dbb6c3e8e7a594e639f17814f08 |
|
BLAKE2b-256 | 3d371ed263a07274d2c3bf5ef597e3eb434ec44833430b4066ded3bc639580b0 |
aiida_s3-0.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5d5024a07b186454274c3fb4d7695f1c75aaa8e0cfa2525b424800f7caf9832c |
|
MD5 | 082f211bb73aaa64ce1f85b4de2ec0e9 |
|
BLAKE2b-256 | 6d2c7128d9f7b49cb7c63dd8804381fd2536bd5e052b1b4b8ede9ab6d175a3ba |