minio/docs/gateway/b2.md
Ingmar Runge fa4d627b57
B2 gateway S3 compat: return MD5 hash as ETag from PutObject (#9183)
- B2 does actually return an MD5 hash for newly uploaded objects
  so we can use it to provide better compatibility with S3 client
  libraries that assume the ETag is the MD5 hash such as boto.
- depends on change in blazer library.
- new behaviour is only enabled if MinIO's --compat mode is active.
- behaviour for multipart uploads is unchanged (works fine as is).
2020-03-28 13:59:55 -07:00

2.5 KiB

MinIO B2 Gateway Slack

MinIO Gateway adds Amazon S3 compatibility to Backblaze B2 Cloud Storage.

Run MinIO Gateway for Backblaze B2 Cloud Storage

Please follow this guide to create an account on backblaze.com to obtain your access credentials for B2 Cloud storage.

Using Docker

docker run -p 9000:9000 --name b2-s3 \
 -e "MINIO_ACCESS_KEY=b2_account_id" \
 -e "MINIO_SECRET_KEY=b2_application_key" \
 minio/minio gateway b2

Using Binary

export MINIO_ACCESS_KEY=b2_account_id
export MINIO_SECRET_KEY=b2_application_key
minio gateway b2

Test using MinIO Browser

MinIO Gateway comes with an embedded web based object browser. Point your web browser to http://127.0.0.1:9000 to ensure that your server has started successfully.

Screenshot

Test using MinIO Client mc

mc provides a modern alternative to UNIX commands such as ls, cat, cp, mirror, diff etc. It supports filesystems and Amazon S3 compatible cloud storage services.

Configure mc

mc config host add myb2 http://gateway-ip:9000 b2_account_id b2_application_key

List buckets on Backblaze B2

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

Known limitations

Gateway inherits the following B2 limitations:

  • No support for CopyObject S3 API (yet).
  • No support for CopyObjectPart S3 API (yet).
  • Only read-only bucket policy supported at bucket level, all other variations will return API Notimplemented error.
  • DeleteObject() might not delete the object right away on Backblaze B2, so you might see the object immediately after a Delete request.
  • Multipart uploads don't return an MD5-hash ETag, not even with the --compat flag.

Other limitations:

  • Bucket notification APIs are not supported.
  • The PutObject S3 API only returns the md5sum of an uploaded file as it's ETag response when minio is started in --compat mode. Don't use this unless you are stuck with a client library where this check cannot be turned off (e.g. boto).

Explore Further