Uplink CLI generate S3 --writeonly

You can make a feature request here: DCS feature requests - voting - Storj Community Forum (official), however the python binding is a third party repo, it depends on their maintainers. So maybe better to make an issue in the Issues · storj-thirdparty/uplink-python · GitHub

I would suggest not to use the s3 protocol where possible. It has limitations mentioned here: Programmatic Granting of new Access keys - #2 by Alexey

For grant permissions - you need to specify

uplink share --readonly=false --writeonly --not-after +1h --register sj://[bucket]/[folder]

I know it feels counter-intuitive, so I made an internal ticket a while ago. This problem should be solved in the uplinkng tool (it’s expected to be merged to uplink when all features will mature), see [Tech Preview] Uplinkng (new enhanced uplink cli), Changelog v1.42.4, Release preparation v1.43

The explanation of such a behavior - the uplink share command generates read-only grants by default, thus specifying the --writeonly option will extends the default --readonly=true option with the --writeonly=true option, thus by binary logic it results to no permissions at all. So you need to disable the read-only flag and enable write-only flag. Please, note - it will produce:

=========== ACCESS RESTRICTIONS ==========================================================
Download  : Disallowed
Upload    : Allowed
Lists     : Disallowed
Deletes   : Allowed
NotBefore : No restriction
NotAfter  : 2021-11-18 12:08:59

So, if you want to disable deletes or enable downloads - you need to explicitly specify that.