Git Product home page Git Product logo

gsrsup's Introduction

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.

Building

gsrsup builds using a handwritten Ninja file. Simply run ninja to create a development build. You can also run Ninja with a custom build file to request a different profile:

  • ninja -f buildconf/asan.ninja: Build with AddressSanitizer.
  • ninja -f buildconf/dbg.ninja: Build for debugging.
  • ninja -f buildconf/release.ninja: Build with optimizations.

This is not an official Google product.

gsrsup's People

Contributors

bbarenblat avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.