diff --git a/examples/repository/main.go b/examples/repository/main.go deleted file mode 100644 index 885fa4f3d..000000000 --- a/examples/repository/main.go +++ /dev/null @@ -1,40 +0,0 @@ -// Command repository_api demonstrates the use of Kopia's Repository API. -package main - -import ( - "context" - "os" - - "github.com/kopia/kopia/internal/kopialogging" - "github.com/kopia/repo" -) - -var log = kopialogging.Logger("kopia/example") - -func main() { - ctx := context.Background() - - if err := setupRepositoryAndConnect(ctx, masterPassword); err != nil { - log.Errorf("unable to set up repository: %v", err) - os.Exit(1) - } - - r, err := repo.Open(ctx, configFile, masterPassword, nil) - if err != nil { - log.Errorf("unable to open repository: %v", err) - os.Exit(1) - } - defer r.Close(ctx) //nolint:errcheck - - uploadAndDownloadObjects(ctx, r) - - // Now list blocks found in the repository. - blks, err := r.Blocks.ListBlocks("") - if err != nil { - log.Errorf("err: %v", err) - } - - for _, b := range blks { - log.Infof("found block %v", b) - } -} diff --git a/examples/repository/setup_repository.go b/examples/repository/setup_repository.go deleted file mode 100644 index 82c274220..000000000 --- a/examples/repository/setup_repository.go +++ /dev/null @@ -1,54 +0,0 @@ -package main - -import ( - "context" - "fmt" - "os" - - "github.com/kopia/repo" - "github.com/kopia/repo/block" - "github.com/kopia/repo/storage/filesystem" - "github.com/kopia/repo/storage/logging" -) - -const ( - masterPassword = "my-password$!@#!@" - storageDir = "/tmp/kopia-example/storage" - configFile = "/tmp/kopia-example/config" - cacheDirectory = "/tmp/kopia-example/cache" -) - -func setupRepositoryAndConnect(ctx context.Context, password string) error { - if err := os.MkdirAll(storageDir, 0700); err != nil { - return fmt.Errorf("unable to create directory: %v", err) - } - st, err := filesystem.New(ctx, &filesystem.Options{ - Path: storageDir, - }) - if err != nil { - return fmt.Errorf("unable to connect to storage: %v", err) - } - - // set up logging so we can see what's going on - st = logging.NewWrapper(st) - - // see if we already have the config file, if not connect. - if _, err := os.Stat(configFile); os.IsNotExist(err) { - // initialize repository - if err := repo.Initialize(ctx, st, &repo.NewRepositoryOptions{}, password); err != nil { - log.Errorf("unable to initialize repository: %v", err) - } - - // now establish connection to repository and create configuration file. - if err := repo.Connect(ctx, configFile, st, password, repo.ConnectOptions{ - CachingOptions: block.CachingOptions{ - CacheDirectory: cacheDirectory, - MaxCacheSizeBytes: 100000000, - }, - }); err != nil { - return fmt.Errorf("unable to connect to repository: %v", err) - } - } - - return nil -} diff --git a/examples/repository/upload_download_objects.go b/examples/repository/upload_download_objects.go deleted file mode 100644 index 31b253dce..000000000 --- a/examples/repository/upload_download_objects.go +++ /dev/null @@ -1,64 +0,0 @@ -package main - -import ( - "context" - "crypto/rand" - "io/ioutil" - "os" - - "github.com/kopia/repo" - "github.com/kopia/repo/object" -) - -func uploadRandomObject(ctx context.Context, r *repo.Repository, length int) (object.ID, error) { - w := r.Objects.NewWriter(ctx, object.WriterOptions{}) - defer w.Close() //nolint:errcheck - - buf := make([]byte, 256*1024) - for length > 0 { - todo := length - if todo > len(buf) { - todo = len(buf) - } - rand.Read(buf[0:todo]) //nolint:errcheck - if _, err := w.Write(buf[0:todo]); err != nil { - return "", err - } - length -= todo - } - return w.Result() -} - -func downloadObject(ctx context.Context, r *repo.Repository, oid object.ID) ([]byte, error) { - rd, err := r.Objects.Open(ctx, oid) - if err != nil { - return nil, err - } - defer rd.Close() //nolint:errcheck - - return ioutil.ReadAll(rd) -} - -func uploadAndDownloadObjects(ctx context.Context, r *repo.Repository) { - var oids []object.ID - - for size := 100; size < 100000000; size *= 2 { - log.Debugf("uploading file with %v bytes", size) - oid, err := uploadRandomObject(ctx, r, size) - if err != nil { - log.Errorf("unable to upload: %v", err) - os.Exit(1) - } - log.Debugf("uploaded %v bytes as %v", size, oid) - oids = append(oids, oid) - } - - for _, oid := range oids { - log.Infof("downloading %q", oid) - b, err := downloadObject(ctx, r, oid) - if err != nil { - log.Errorf("unable to read object: %v", err) - } - log.Debugf("downloaded %v", len(b)) - } -}