对Backblaze B2云存储服务的实验性Amazon S3 API支持

对Backblaze B2云存储服务的实验性Amazon S3 API支持

我们的一些社区成员一再要求Backblaze B2云存储和MinIO集成[1]B2的价格具有竞争力,并且拥有大量粉丝。我们还从Backblaze团队那里得知,他们正在积极扩展B2云存储服务。我们在MinIO中添加了对Backblaze B2后端的实验性支持,以为其B2服务添加与S3兼容的API支持。

MinIO在内部将所有传入的S3 API调用转换为等效的B2存储API调用,这意味着所有MinIO存储桶和对象都存储为本地B2存储桶和对象。S3对象层对于使用S3 API的应用程序是透明的。这样,您可以同时使用Amazon S3和B2 API,而不会损害任何功能。

从下载预构建的二进制文件

来源可在https://github.com/minio/minio/pull/5002获得

在Linux amd64上安装

wget https://data.minio.io:10000/minio-b2/linux-amd64/minio
chmod +x minio

下载二进制文件后,请按照指南https://www.backblaze.com上创建一个帐户,以获取B2存储的帐户ID应用程序密钥

启动Minio Server

获得帐户ID应用程序密钥后,将它们导出为环境变量。

export MINIO_ACCESS_KEY=<your_b2_accound_id>
export MINIO_SECRET_KEY=<your_b2_application_key>
minio gateway b2

要测试您的设置,请将浏览器指向http:// localhost:9000使用相同的B2凭据登录和访问您的数据。

命令行访问

下载MinIO客户端(mc),它提供UNIX核心实用程序(如ls,cat,cp,mirror,diff等的现代替代方案。它支持文件系统和与Amazon S3兼容的云存储服务。

mc config host add myb2 http://localhost:9000 b2_account_id b2_application_key

配置mc完之后,就可以使用子命令ls, cp, mirror来管理数据了。

mc ls myb2
[2017-02-22 01:50:43 PST]     0B b2-bucket/
[2017-02-26 21:43:51 PST]     0B my-bucket/
[2017-02-26 22:10:11 PST]     0B test-bucket1/

SDK访问

MinIO支持适用于Amazon S3兼容API的轻量级SDK您也可以使用Amazon SDK通过MinIO访问B2。

from minio import Minio
from minio.error import ResponseError

client = Minio('localhost:9000',
               access_key='b2_account_id',
               secret_key='b2_application_key',
               secure=False)

# Get a full object
try:
    data = client.get_object('my-bucketname', 'my-objectname')
    with open('my-testfile', 'wb') as file_data:
        for d in data.stream(32*1024):
            file_data.write(d)
except ResponseError as err:
    print(err)

如果您有任何疑问或反馈,请通过http://slack.minio.org.cn/questions告诉我们。

已知局限性

Backblaze B2不支持很少使用的CopyObjectCopyObjectPart API。尽管可以使用GetObject和PutObject在MinIO层上对此进行仿真,但会产生额外的数据传输成本。

编辑

MinIO master分支现已提供Backblaze B2支持,请使用最新代码进行测试

docker run -p 9000:9000 --name azure-s3 \
 -e "MINIO_ACCESS_KEY=b2_accound_id" \
 -e "MINIO_SECRET_KEY=b2_application_key" \
 minio/minio:edge gateway b2
上一篇 下一篇