Open espenhgn opened 3 months ago
The --s3cmd-help
output is coming from s3cmd, which this project provides a simple wrapper around.
I understand that this parameter is confusing, so I will go a bit into the background here. Object storage is very different from POSIX file systems, and does not try to implement its semantics or permissions schemes. When told to preserve permissions, s3cmd will build itself a tool-specific header containing these attributes it sends along with the request to the S3 server, so that they are preserved as metadata. When data from that bucket is copied out again via the S3 protocol, using s3cmd and telling it to --preserve
attributes, the metadata will be used for setting file/directory attributes on a POSIX file system.
There's no way to specify on-disk file permissions for data transferred via S3 protocol, because out-of-band access to data transferred to it was not among the goals Amazon had in mind when designing this.
Thanks for the clarification. But do you have alternative suggestions for incremental syncing of large file sets within a directory and preserving the POSIX file attributes (other than tar/zipping all files)? To provide a bit of background, GenoPred is a snakemake project that consists of nearly 100GB of files once all download rules are applied within a system with internet access (e.g., SAGA/NIRD).
Two options (maybe) for the medium term:
I need some transferred files to retain their "executable" permission from the source location:
but on TSD this is removed, even if all files were transferred with
tsd-s3cmd sync --recursive --preserve GenoPred s3://espehage-nird/
:According to
tsd-s3cmd --s3cmd-help
: