Storj for de-googling :-)

Hi everyone,

I’m a kind of tech-entrepreneur and I see huge potential with Storj. Wondering with the current situation of how Google, Facebook, (mainly the Big Techs) manipulate and control ourselves, I want to give to the common user a tool to substitute Google Drive for a cloud drive based on Storj. But, I’m not sure I can do it, these are my questions:

  • Can I create a client software for FileStreaming? (not syncing folders, filestreaming) That’s the easiest question :wink:
  • Having the filestreaming working, can I share a file with other user? he should have an account.
  • My goal is to build that service for end-users, so then, using tardigrade, how can I create secret keys for the users from my account? It’s very important to keep security for them.
  • If I share documents with other users, is that possible to collaborate with other users editing it in real-time?

Many thanks for your help!!

1 Like

I think it is a matter of moving some of the tasks and work as a temporary “buffer” to the server that will host the entire service. Same work on one file. Many users can have access to the same file, but the way you give them access is up to you. A large part of the tasks must be performed on the server side hosting the service. I think you can pay attention to how nextcloud works and using Tardigrade (or other s3-compatible) as Primary Storage.

1 Like

It kind-of defeats the purpose.

If I have to use my server between Tardigrade and the client, then I might as well store the files directly on that server - most likely it would be cheaper and I would not need to pay double for bandwidth (Tardigrade -> my server -> client).

I think the real answer is an Uplink that runs in a browser etc so that the client can get files directly from Tardigrade.


yeah and if they download their files then they can ofc be shared through themselves, duno if one can do multi user stuff… but in theory that should be pretty trivial… if multiple users basically share a tardigrade “folder” or such wouldn’t really rely much on the base technology only some most basic user management options in tardigrade…
if they are there or not… i really don’t know… just another SNO in the cloud

1 Like

Let me try to answer each of you questions separately.

File streaming, both for downloads and uploads, is natively supported by Tardigrade. The necessary API is exposed in the Uplink client library. In general, when you request the library for new upload or download, it returns you a stream where to write or read the bytes of the data.

Yes, users can share individual files, folders, buckets, or the entire project with others using macaroons. Pemission could be further restricted to specific action, e.g. read-only. The best part is that the receiving party does not need to have a Tardigrade account. They can just the so called “serialized access grant”, which is a single string sent by the sharing party.

We even have a link sharing service (you can self-host it too) that allow using these access grants directly in the web browser. For example, check this link - this video is streamed from Tardigrade:

Sharing is done via the share command of the Uplink CLI tool:

There Uplink client library provides the respective API too.

In your Tardigrade project you can create root API keys. You can restrict a root API key to access a specific bucket or a folder within the bucket. You can dub such restricted API key as the “user API key” and give them to your users to access their user bucket, or user folder within the app bucket (depending on how you decide on the architecture).

The API key just give access to the encrypted data in the bucket (or folder), but cannot encrypt/decrypt the stored data. Your users will use their own encryption passphrase to use with teh user API key to upload and download data. The encryption passphrase is never transmitted to Tardigrade. It’s kept soley on the client side. When sharing files an encryption key is hierarchically derived from the encryption passphrase to decrypt just the specific shared file and nothing else.

Tardigrade is a plain object storage. For real-time collaboration on documents you would need a collaboration server. Collabora Online is a famous open source solution:

If you integrate Collabora Online with Tardigrade you will get what you own.

Collabora Online is well-integrated with Nextcloud too. Perhaps, Nextcloud would provide most of the features you need as UX. We have some community members who reported that they successfully used Nextcloud with Tardigrade using the Tardigrade S3 Gateway.


Yes, the network was optimized for this possibility. You can already check this feature out on . But keep in mind that while the network is in production, this implementation is still an alpha.

There are extensive access control mechanisms available to build your application around. You can find more info here:

Due to the nature of how the network works, this won’t be possible directly on the Tardigrade service as there is no edit feature, just upload and replace. Though you could host the an application backend that provides this feature yourself and save the state back to tardigrade whenever you need. You could also use incremental saves that include the edits in separate objects so the file doesn’t need to be uploaded over and over.

Aaand while I typed this @kaloyan gave a much more complete response to nearly everything. Oh well, might as well click send anyway in case I added something useful.


Wow, many thanks for your answers! Now I have a lot of work xD

I’ll keep you update with the progress :slight_smile: