Nilay from Backblaze here. Amongst other things, the solution engineering team reports up to me... and when I saw this comment yesterday, I had them dig into why the B2 S3 API doesn't did not work for you.
It turns out that Backblaze B2 absolutely does support uploading objects via S3 style presigned URLs. However, there are a couple of caveats:
1. B2 doesn't currently support PostObject operations. Therefore, you must use PutObject to upload to a pre-signed URL. Many of the AWS SDKs default to PostObject.
2. B2 only supports AWS v4 authentication and not v2, which AWS has deprecated. However, some AWS SDKs default to v2.
I am currently away for this week, so I can't try it this week. Can I reach out to you next week with my findings? Is there an email address I can reach you at?
Just wanted to mention that I had raised my issues on the backblaze subreddit back then:
Yes - B2 is strongly consistent. When you upload an object using either the B2 Native or S3 API - the object is persisted to the final resting place before the upload completes. Therefore, you can list/download the file immediately after your upload completes.
Nilay from Backblaze here. This is awesome! Can you reach out to us via this form? I'd love to learn more about your software and list it on our website. Just mention I sent you here: https://www.backblaze.com/b2/contact-sales.html
We might blog about it, these particular tools probably aren't very amenable to open sourcing. They've heavily dependent on in-house Dropbox infrastructure.
Sparrow being my favorite app... and Marco's post encouraged me to write a blog about the state of productivity apps in the App Store.
Excellent apps like Sparrow are damn expensive to write. If Apple cares about keeping companies like Sparrow alive (they should) they can do two things to help us.
1) Allow Apps to charge monthly/annual subscriptions.
2) Give ad/social marketing campaign data to devs so they know which of their efforts to attract users is working.
Yeah, a company C-A-N abuse our service doing this. It does violate the spirit of our terms of agreement, but honestly... We probably wouldn't notice and wouldn't terminate your account. In fact, we do not throttle our network connections either... If you have a TB of data, bring it on.
We have disrupted this market by creating our own storage and cloud management system. Our costs are far below our competitors. We are profitable and cash flow positive. The occasional abuse won't change that. If you don't know about this, check out our blog articles about our storage pod... http://blog.backblaze.com.
In general, companies don't do abuse us. They know it is in their best interest that we are profitable and thriving. Otherwise, how could be continue to provide the least expensive business online backup available? Every other competitor charges companies on a per GB basis. Our service ... at $50/computer for unlimited storage is both inexpensive and predictable.
Finally, when someone uploads a 1TB of data on our service, they tend to tell everyone they know! This attracts a lot of customers to start using our service with far less than 1TB of data. You can't buy publicity like that.
Hope that helps you understand what we are up to. Email me if you have questions... If you are a true hacker, figuring out my email address will be a piece of cake.
It turns out that Backblaze B2 absolutely does support uploading objects via S3 style presigned URLs. However, there are a couple of caveats:
1. B2 doesn't currently support PostObject operations. Therefore, you must use PutObject to upload to a pre-signed URL. Many of the AWS SDKs default to PostObject.
2. B2 only supports AWS v4 authentication and not v2, which AWS has deprecated. However, some AWS SDKs default to v2.
I've put together a very simple python code sample that successfully works for me. https://gist.github.com/nilayp/2c2a04f033d8992ce4b8f591ab449...
Would this solve your issue?