How to connect to backblaze?
Scott Hannahs via Duplicity-talk <[email protected]> Mon, 29 Sep 2025 10:49:31 -0400
| Newsgroups | gmane.comp.sysutils.backup.duplicity.general |
|---|---|
| Message-ID | <[email protected]> |
--===============3068212724930051615==
Content-Type: multipart/alternative;
boundary="Apple-Mail=_C7A9A733-0C96-4248-9EF0-4BBD6B3ABB4F"
--Apple-Mail=_C7A9A733-0C96-4248-9EF0-4BBD6B3ABB4F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
charset=utf-8
I am trying to switch cloud providers from Dreamhost/Wasabi to BackBlaze =
due to the pricing structure being much better.
The Backblaze B2 storage is S3 compliant and I think Dreamhost is just =
repackaaging it for their DreamObjects and adding an extra surcharge.
it uses a global bucket naming scheme in the domain name but I can=E2=80=99=
t get the S3 backend to work. I gather that the B2 backend is no longer =
supported? The S3 should be successful here AFAICT.
The domain <BUCKETNAME>.s3.us-east-005.backblazeb2.com =
<http://s3.us-east-005.backblazeb2.com/> does exist and I can ping it.
My command line (minus a bunch of exclude statements:
nice -n19 /opt/sw/bin/duplicity backup --full-if-older-than 49D =
--num-retries 5 --tempdir /var/tmp/duplicity --volsize 500 --encrypt-key =
XXXXXXXX --sign-key YYYYYYYY --gpg-binary /opt/sw/bin/gpg --force =
--verbosity Notice --s3-multipart-chunk-size 500 --s3-endpoint-url =
https://<BUCKETNAME>.s3.us-east-005.backblazeb2.com <FOLDER TO BACKUP> =
s3://<FOLDERNAME>
I have also tried the following
nice -n19 /opt/sw/bin/duplicity backup --full-if-older-than 49D =
--num-retries 5 --tempdir /var/tmp/duplicity --volsize 500 --encrypt-key =
XXXXXXXX --sign-key YYYYYYYY --gpg-binary /opt/sw/bin/gpg --force =
--verbosity Notice --s3-multipart-chunk-size 500 --s3-endpoint-url =
https://s3.us-east-005.backblazeb2.com <FOLDER TO BACKUP> =
s3://<BUCKETNAME>/<FOLDERNAME>
I get the error:
ClientError: An error occurred (403) when calling the HeadBucket =
operation: Forbidden for both.
If I use Verbosity=3DDebug
Backtrace of previous error: Traceback (innermost last):
File "/opt/sw/lib/python3.10/site-packages/duplicity/backend.py", line =
375, in inner_retry
return fn(self, *args)
File "/opt/sw/lib/python3.10/site-packages/duplicity/backend.py", line =
631, in list
return [tobytes(x) for x in self.backend._list()]
File =
"/opt/sw/lib/python3.10/site-packages/duplicity/backends/s3_boto3_backend.=
py", line 209, in _list
self.reset_connection()
File =
"/opt/sw/lib/python3.10/site-packages/duplicity/backends/s3_boto3_backend.=
py", line 105, in reset_connection
self.s3.meta.client.head_bucket(Bucket=3Dself.bucket_name)
File "/opt/sw/lib/python3.10/site-packages/botocore/client.py", line =
565, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/opt/sw/lib/python3.10/site-packages/botocore/client.py", line =
1021, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (403) when calling =
the HeadBucket operation: Forbidden
This seems to work with the older Dreamhost S3 storage so there is =
something in my setup that is wrong? Any advice from someone =
successfullly using Backblaze would be greatly appreciated.
-Scott
--Apple-Mail=_C7A9A733-0C96-4248-9EF0-4BBD6B3ABB4F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
charset=utf-8
<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;">I am trying to =
switch cloud providers from Dreamhost/Wasabi to BackBlaze due to the =
pricing structure being much better.<div><br></div><div>The Backblaze B2 =
storage is S3 compliant and I think Dreamhost is just repackaaging it =
for their DreamObjects and adding an extra =
surcharge.</div><div><br></div><div>it uses a global bucket naming =
scheme in the domain name but I can=E2=80=99t get the S3 backend to =
work. I gather that the B2 backend is no longer supported? =
The S3 should be successful here =
AFAICT.</div><div><br></div><div>The domain <span =
style=3D"font-family: Menlo;"><BUCKETNAME>.<a =
href=3D"http://s3.us-east-005.backblazeb2.com">s3.us-east-005.backblazeb2.=
com</a> does exist and I can ping =
it.</span></div><div><br></div><div><p style=3D"margin: 0px; font-style: =
normal; font-variant-caps: normal; font-width: normal; line-height: =
normal; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;">My command line =
(minus a bunch of exclude statements:</span></p><p style=3D"margin: 0px; =
font-style: normal; font-variant-caps: normal; font-width: normal; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures"><br></span></p><p =
style=3D"margin: 0px; font-style: normal; font-variant-caps: normal; =
font-width: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: =
no-common-ligatures"></span></p></div><blockquote style=3D"margin: 0 0 0 =
40px; border: none; padding: 0px;"><div><p style=3D"margin: 0px; =
font-style: normal; font-variant-caps: normal; font-width: normal; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures">nice -n19 =
/opt/sw/bin/duplicity backup --full-if-older-than 49D --num-retries 5 =
--tempdir /var/tmp/duplicity --volsize 500 --encrypt-key XXXXXXXX =
--sign-key YYYYYYYY --gpg-binary /opt/sw/bin/gpg --force --verbosity =
Notice --s3-multipart-chunk-size 500 --s3-endpoint-url =
https://<BUCKETNAME>.s3.us-east-005.backblazeb2.com <FOLDER TO =
BACKUP> s3://<FOLDERNAME></span></p></div></blockquote><div><p =
style=3D"margin: 0px; font-style: normal; font-variant-caps: normal; =
font-width: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures"><br></span></p><p =
style=3D"margin: 0px; font-style: normal; font-variant-caps: normal; =
font-width: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal;"><span style=3D"font-variant-ligatures: =
no-common-ligatures;">I have also tried the following</span></p><p =
style=3D"margin: 0px; font-style: normal; font-variant-caps: normal; =
font-width: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal;"><span style=3D"font-variant-ligatures: =
no-common-ligatures"></span></p></div><blockquote style=3D"margin: 0 0 0 =
40px; border: none; padding: 0px;"><div><p style=3D"margin: 0px; =
font-width: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal;"><span style=3D"font-variant-ligatures: =
no-common-ligatures;">nice -n19 /opt/sw/bin/duplicity backup =
--full-if-older-than 49D --num-retries 5 --tempdir /var/tmp/duplicity =
--volsize 500 --encrypt-key XXXXXXXX --sign-key YYYYYYYY --gpg-binary =
/opt/sw/bin/gpg --force --verbosity Notice --s3-multipart-chunk-size 500 =
--s3-endpoint-url https://s3.us-east-005.backblazeb2.com <FOLDER TO =
BACKUP> =
s3://<BUCKETNAME>/<FOLDERNAME></span></p></div></blockquote><d=
iv><span style=3D"font-variant-ligatures: =
no-common-ligatures;"><br></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><p style=3D"margin:=
0px; font-style: normal; font-variant-caps: normal; font-width: normal; =
line-height: normal; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;">I get the =
error:</p><blockquote style=3D"margin: 0px 0px 0px 40px; border: medium; =
padding: 0px;"><p style=3D"margin: 0px; font-width: normal; line-height: =
normal; font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;">ClientError: An =
error occurred (403) when calling the HeadBucket operation: Forbidden =
for both.</span></p></blockquote><div><font =
face=3D"Menlo"><br></font></div><div>If I use =
Verbosity=3DDebug</div></span></div><blockquote style=3D"margin: 0 0 0 =
40px; border: none; padding: 0px;"><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;">Backtrace of =
previous error: Traceback (innermost =
last):</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> File =
"/opt/sw/lib/python3.10/site-packages/duplicity/backend.py", line 375, =
in inner_retry</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> =
return fn(self, =
*args)</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> File =
"/opt/sw/lib/python3.10/site-packages/duplicity/backend.py", line 631, =
in list</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> =
return [tobytes(x) for x in =
self.backend._list()]</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> File =
"/opt/sw/lib/python3.10/site-packages/duplicity/backends/s3_boto3_backend.=
py", line 209, in _list</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> =
self.reset_connection()</span></p></div></span></div><div><spa=
n style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> File =
"/opt/sw/lib/python3.10/site-packages/duplicity/backends/s3_boto3_backend.=
py", line 105, in =
reset_connection</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> =
self.s3.meta.client.head_bucket(Bucket=3Dself.bucket_name)</sp=
an></p></div></span></div><div><span style=3D"font-variant-ligatures: =
no-common-ligatures;"><div><p style=3D"margin: 0px; font-width: normal; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal;"><span style=3D"font-variant-ligatures: =
no-common-ligatures;"> File =
"/opt/sw/lib/python3.10/site-packages/botocore/client.py", line 565, in =
_api_call</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> =
return self._make_api_call(operation_name, =
kwargs)</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> File =
"/opt/sw/lib/python3.10/site-packages/botocore/client.py", line 1021, in =
_make_api_call</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures;"> =
raise error_class(parsed_response, =
operation_name)</span></p></div></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><p =
style=3D"margin: 0px; font-width: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: =
no-common-ligatures;"> botocore.exceptions.ClientError: An error =
occurred (403) when calling the HeadBucket operation: =
Forbidden</span></p></div></span></div></blockquote><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;"><div><span =
style=3D"font-variant-ligatures: =
no-common-ligatures;"><br></span></div><div><span =
style=3D"font-variant-ligatures: no-common-ligatures;">This seems to =
work with the older Dreamhost S3 storage so there is something in my =
setup that is wrong? Any advice from someone successfullly using =
Backblaze would be greatly appreciated.</span></div><div><span =
style=3D"font-variant-ligatures: =
no-common-ligatures;"><br></span></div><div><span =
style=3D"font-variant-ligatures: =
no-common-ligatures;">-Scott</span></div><div><p></p></div></span></div></=
body></html>=
--Apple-Mail=_C7A9A733-0C96-4248-9EF0-4BBD6B3ABB4F--
--===============3068212724930051615==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRHVwbGljaXR5
LXRhbGsgbWFpbGluZyBsaXN0CkR1cGxpY2l0eS10YWxrQG5vbmdudS5vcmcKaHR0cHM6Ly9saXN0
cy5ub25nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZHVwbGljaXR5LXRhbGsK
--===============3068212724930051615==--