xvc file share

Synopsis

$ xvc file share --help
Share a file from (S3 compatible) storage for a limited time

Usage: xvc file share [OPTIONS] --storage <STORAGE> <TARGET>

Arguments:
  <TARGET>  File to send/push/upload to storage

Options:
  -s, --storage <STORAGE>    Storage name or guid to send the files
  -d, --duration <DURATION>  Period to send the files to. You can use s, m, h, d, w suffixes [default: 24h]
  -h, --help                 Print help

Examples

This command requires an Xvc repository to share files from S3 and compatible storages.

$ git init
Initialized empty Git repository in [CWD]/.git/

$ xvc init

$ xvc-test-helper create-directory-tree --directories 1 --files 3  --seed 20240228

$ tree dir-0001
dir-0001
├── file-0001.bin
├── file-0002.bin
└── file-0003.bin

1 directory, 3 files

You can share a file tracked by Xvc by first configuring an S3 compatible storage.

Xvc only sends and receives tracked files.

$ xvc file track dir-0001

You can define a storage bucket as storage and begin to use it.

$ xvc storage new s3 --name backup --bucket-name xvc-test --region eu-central-1 --storage-prefix xvc-storage

You must first send files to the remote storage.

$ xvc file send --storage backup dir-0001/

Now you can share the files. It will create a URL for you to share that file. (Here we use cut to make the command repeatable)

$ zsh -cl 'xvc file share --storage backup dir-0001/file-0001.bin | cut -c -50'
https://xvc-test.s3.eu-central-1.amazonaws.com/xvc

Note that the default period is 24 hours. You can set another period with --duration.

$ zsh -cl 'xvc file share --duration 1h --storage backup dir-0001/file-0002.bin | cut -c -50'
https://xvc-test.s3.eu-central-1.amazonaws.com/xvc

You can get another URL for a shared file with a different period.

$ zsh -cl 'xvc file share --duration 1m --storage backup dir-0001/file-0002.bin | cut -c -50'
https://xvc-test.s3.eu-central-1.amazonaws.com/xvc

See humantime duration parsing documentation for duration expressions.