diff options
author | Benjamin Barenblat <bbaren@google.com> | 2021-01-26 18:18:53 -0500 |
---|---|---|
committer | Benjamin Barenblat <bbaren@google.com> | 2021-01-26 18:46:14 -0500 |
commit | 523c1be8407ff513dfdc8f13a707a1a9ade168a2 (patch) | |
tree | a79a0e684d46bf001be510bb937db726ab7886bd /README.md |
Initialize project
Create a repository for gsrsup using the Google new project template.
Everything here’s pretty standard.
Reviewed-by: Alex Chernyakhovsky <achernya@google.com>
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..ca640a3 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# gsrsup + +`gsrsup` implements _resumable streaming uploads_ to Google Cloud Storage. It’s +useful for uploading a reproducible stream of data too large to fit on disk. For +example, you can upload a ZFS snapshot by running + + zfs send tank/fs@snapshot | gsrsup gs://bucket/object + +This pipeline can be interrupted at any time; if rerun, `gsrsup` will seek to the +appropriate place in the input stream and continue uploading from there. + +`gsrsup` performs integrity checking on the data it uploads and will report a +problem if the input stream changes between two invocations. However, the design +of the Google Cloud Storage API prevents `gsrsup` from detecting such a change +until the entire stream has been uploaded. + +For safety, `gsrsup` treats Google Cloud Storage objects as append-only – it +will never overwrite or delete them. Furthermore, it will never append to an +object once its upload has completed. If you run + + gsrsup gs://bucket/bash </bin/bash + +twice, the second invocation will skip uploading altogether and only run the +integrity-checking code. + +--- + +This is not an official Google product. |