Questions about uplink-nodejs

Is it a problem that uplink-nodejs is not up-to-date with the go version?

How is metadata treated? Does it count towards the file size? Are there limitations the amount of values?

How can I configure that a file should be automatically removed after time x? Is this done with the access grant permission settings not_after?

When I derive an encryption key from a main encryption key, can I decrypt the files which have been encrypted with the derived key with my main encryption key? Does deriving always give the same result? Meaning, do I have to store the derived key or can I just derive again every time I need the derived key?

Yes. I don’t believe the Go version is a big issue but we had some backwards incompatible changes in our implementation. With an old uplink version you can still upload and download files but you wouldn’t be able to access them with a new uplink version or any other tool that is using the new lib. Same the other way around. A file uploaded in the file browser would cause issues in the old uplink version.

I am not sure if we are going to update the nodejs lib. That is maybe a question for @Jacob.

Any access grant permission would only make the access grant invalid but not the file. You can simply generate a new access grant and download your file again. This can be useful if you want to share a file but you want the link to work only for a few hours.

The command you are looking for would be uplink cp --expires. That will upload the pieces to the storage nodes with an expire date. The storage nodes will keep the pieces for a bit longer to avoid audit penalties and than just delete it without any additional command from your side. The satellite will just stop doing anything with that file and run a cleanup job later.

I am not sure if that expire option is available in the nodejs lib. In case it is missing I can’t even promise we are going to add it any time soon. That question would be for @Jacob again.

Yes it does. You only need to remember the root key and can derive an unlimited number of encrption keys from that.

Let me know if you have any follow up question.

1 Like

Does that mean the uplink version should never be updated? Otherwise all uploaded files become inaccessible?

What are my options?

Hi @tylkomat, thanks for your questions.

Can you share more about your use case? Anything else you can share will help us guide you on options.

More options that you could consider:

1 Like

I’m looking to create something like wetransfer and similar applications.
Files will be stored only a limited time, so the --expires feature is a plus. Otherwise I just need upload and download.

I happy to contribute to the node bindings, but I never created some. I can’t estimate how much effort it would take. Unfortunately there is no documentation in the repo how to do it. Do you have a good resource?