对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,而不会损害任何功能。
从下载预构建的二进制文件
Linux amd64(https://data.minio.io:10000/minio-b2/linux-amd64/minio)
MacOS amd64(https://data.minio.io:10000/minio-b2/darwin-amd64/minio)
来源可在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不支持很少使用的CopyObject和CopyObjectPart 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