Is Backblaze's S3 API ready for nextcloud?

What happend

Backblaze release there cloud storage’s S3 compatible API about 2 week ago. Given that it is more reliable and cheaper, I tried to move my primary s3 backend from self-hosted MinIO to B2 Cloud Storage this morning but failed.

I’m using K3S v17.3 and latest stable/nextcloud chart. After first failed I thought that is a database issue so I change my database backend from mariadb to sqlite but still not work.


Apache2’s logs said Pod’s livenessProbe checked /status.php but always got 400:

there is no log from nextcloud, even after set loglevel to debug:


and I don’t know how to get log from php side. Please somebody here told me how to get log from php side.

Possible reason

Since I only modified the S3 configuration file, I can only think that B2’s S3 API does not meet the requirements of nextcloud.

Here’s B2 said what they support or not:

Supported Calls
The Backblaze S3 Compatible API returns calls in the same way the AWS S3 API does. Note that this may vary slightly from AWS S3 API documentation - this difference is expected based on the AWS S3 API. Here are the calls that are supported:

Abort Multipart Upload
Complete Multipart Upload
Create Bucket
Delete Bucket
Delete Multiple Objects
Delete Object
Get Bucket ACL
Get Bucket Location
Get Bucket Object Versions
Get Object
Get Object ACL
Head Bucket
Head Object
Initiate Multipart Upload
List Buckets
List Multipart Uploads
List Objects v2
List Parts
Put Bucket ACL
Put Object
Put Object Copy
Upload Part
Upload Part Copy

Unsupported Features
The Backblaze S3 Compatible API does not currently support the following features:

ACLs (see above)
IAM roles
Object Locks
Object Tagging
Bucket Logging
Legal Hold
Website configuration
Lifecycle Rules (supported by the Backblaze B2 Native API)
Server-side Encryption

Full S3 API docs see links above.

Conf file

Chart’s values.yaml:

  tag: 18.0.4-apache
  pullPolicy: Always
  host: [masked]
  username: [masked]
  password: [masked]
    s3.config.php: |-
      $CONFIG = array (
        'objectstore' => array(
          'class' => '\\OC\\Files\\ObjectStore\\S3',
          'arguments' => array(
            'bucket'         => '[masked]',
            'autocreate'     => true,
            'key'            => '[masked]',
            'secret'         => '[masked]',
            'hostname'       => '',
            'port'           => 443,
            'region'         => 'us-west-1',
            'use_path_style' => false,
            'use_ssl'        => true
  enabled: true
  enabled: false
  type: mysql
  host: [masked]
  user: nextcloud
  password: [masked]
  database: [masked]
  enabled: false
  enabled: true

PS. Region us-west-1 works with other apps and nextcloud don’t work with us-west-002 either I checked.

PS. I tried both nc18 and nc17.

What hpappend with B2’s storage

Infact, after the very first pod failed, there is some files in B2’s bucket generated by nextcloud.

I download that urn:oid:5 file from B2’s cloud storage.


Seek for help

Is here anyone use B2’s S3 API as well and how about you?