Clone a directory (including permissions) into S3 for File Gateway usage

s3-tree-clone

Clone a filesystem tree to S3 (including metadata), skipping over files that are already synced, in a manner compatible with AWS File Gateway and other S3-to-filesystem products.

Usage

s3-tree-clone [options] <src-dir> s3://<bucket>[/<prefix>]

Copy the filesystem tree rooted at src-dir to the given S3 destination. If prefix is non-empty, it will have a slash appended if necessary.

The src-dir argument is interpreted similarly to rsync: if it ends with a /, no directory is created in the S3 destination. If it does not end with a /, the directory at the end of src-dir is created.

Options

  • -check-bucket: Call GetBucketLocation to verify the bucket location. This will automatically switch to the destination region.
  • -encryption-algorithm AES256|aws:kms: he S3 server-side encryption algorithm to use. This must be either AES256 (default) or aws:kms.
  • -help: Show this usage information.
  • -ignore-timestamps: Ignore file timestamps when comparing files.
  • -kms-key <id>: If -encryption-algorithm is aws:kms, the KMS key ID to use. Defaults to aws/s3.
  • -max-backoff-delay <duration>: The maximum retry backoff delay. Specify a duration such as 1.5m, 1m30s, etc. Defaults to 60s.
  • -max-concurrent <int>: The maximum number of concurrent S3 requests to make. Defaults to 30.
  • -max-retries <int>: The maximum number of retries for a single S3 request. Defaults to 10.
  • -profile <profile>: The credentials profile to use.
  • -region <region>: The AWS region to use. Defaults to $AWS_REGION, $AWS_DEFAULT_REGION, the configured region for the profile (if specified), or the instance region, whichever is appropriate.
  • -root-squash: Change files owned by root to nfsnobody.
  • -storage-class <class>: The S3 storage class to use. One of STANDARD, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, or OUTPOSTS. Defaults to STANDARD. REDUCED_REDUNDANCY has been deprecated and is not supported.
Owner
David Cuthbert
I'm a Cloud Architect (which is a fancy way of saying I can set distributed systems up in a fault tolerant way on AWS), currently doing my own venture.
David Cuthbert
Similar Resources

Reddit-clone-go - Reddit clone with golang

Generate GraphQL Schema go get github.com/99designs/gqlgen/[email protected] go run gi

Dec 28, 2022

Fancy Git Clone that preserves directory structures

git go-clone This is fancy wrapper around git clone that preserves directory structures. For example, if you have some complex organization, and you w

Sep 24, 2021

The Durudex gateway combines all durudex services so that it can be used through a single gateway.

The Durudex gateway combines all durudex services so that it can be used through a single gateway.

Dec 13, 2022

Ruuvi-go-gateway - Software replica of the Ruuvi Gateway

ruuvi-go-gateway ruuvi-go-gateway is a software that tries to replicate Ruuvi Ga

Dec 21, 2022

Grpc-gateway-map-null - gRPC Gateway test using nullable values in map

Demonstrate gRPC gateway behavior with nullable values in maps Using grpc-gatewa

Jan 6, 2022

:closed_lock_with_key: Middleware for keeping track of users, login states and permissions

Permissions2 Middleware for keeping track of users, login states and permissions. Online API Documentation godoc.org Features and limitations Uses sec

Dec 31, 2022

SpiceDB is a Zanzibar-inspired database that stores, computes, and validates application permissions.

SpiceDB is a Zanzibar-inspired database that stores, computes, and validates application permissions. Developers create a schema that models t

Dec 30, 2022

BigQuery Dataset to query IAM Roles-Permissions daily changes

BigQuery Dataset to query IAM Roles-Permissions daily changes

Google Cloud IAM Roles-Permissions Public Dataset Bigquery DataSet that contains a daily snapshot of all Standard Google Cloud IAM Roles and Permissio

Oct 4, 2022

Open source RBAC library. Associate users with roles and permissions.

Open source RBAC library. Associate users with roles and permissions.

ℹ️ This package is completely open source and works independently from Permify. Associate users with roles and permissions This package allows you to

Jan 2, 2023

Add, remove, and manage different versions of web-distributed software binaries. No elevated permissions required!

Add, remove, and manage different versions of web-distributed software binaries. No elevated permissions required!

A cross-platform package manager for the web! Add, remove, and manage different versions of web-distributed software binaries. No elevated permissions

Nov 21, 2022

This is a simple file storage server. User can upload file, delete file and list file on the server.

This is a simple file storage server.  User can upload file,  delete file and list file on the server.

Simple File Storage Server This is a simple file storage server. User can upload file, delete file and list file on the server. If you want to build a

Jan 19, 2022

Quickly clone git repositories into a nested folders like GOPATH.

cl cl clones git repositories into nested folders like GOPATH and outputs the path of the cloned directory. Example: cl https://github.com/foo/bar Is

Nov 30, 2022

turn a directory into a GUI, slash example of VNC-based GUI

dirgui @rsnous on Jan 11, 2021: "idea: filesystem-GUI adapter, where a directory turns into a form, executable files inside that directory turn into

May 3, 2022

Grab is a tool that downloads source code repositories into a convenient directory layout created from the repo's URL's domain and path

Grab is a tool that downloads source code repositories into a convenient directory layout created from the repo's URL's domain and path. It supports Git, Mercurial (hg), Subversion, and Bazaar repositories.

Jun 2, 2022

A very light-weight file sharing platform, including server and client

file-transporter A very light-weight file sharing platform, including server and client Installation git clone https://github.com/vence722/file-transp

Jan 12, 2022

The full power of the Go Compiler directly in your browser, including a virtual file system implementation. Deployable as a static website.

The full power of the Go Compiler directly in your browser, including a virtual file system implementation. Deployable as a static website.

Static Go Playground Features Full Go Compiler running on the browser. Supports using custom build tags. Incremental builds (build cache). Supports mu

Jun 16, 2022

The go mod init command initializes and writes a new go.mod file in the current directory

go mod: The go mod init command initializes and writes a new go.mod file in the current directory, in effect creating a new module rooted at the curre

Nov 21, 2021

Golang-based simple file server to serve files of the current working directory

fileserve Golang-based simple file server to serve static files of the current working directory File sharing in LAN or home network Web application t

Jan 9, 2022

A file wiper (for the current directory) written in Go

A file wiper (for the current directory) written in Go

A file wiper (for the current directory) written in Go. Rewrites all files within all accessible directories from the current directory, including itself. to be blank, usually making victims think nothing was harmed.

Dec 9, 2021
💯 Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving

Package validator implements value validations for structs and individual fields based on tags.

Nov 9, 2022
Convert arbitrary formats to Go Struct (including json, toml, yaml, etc.)

go2struct Convert arbitrary formats to Go Struct (including json, toml, yaml, etc.) Installation Run the following command under your project: go get

Nov 15, 2022
Generic types that are missing from Go, including sets, trees, sorted lists, etc.

go-typ Generic types that are missing from Go, including sets, trees, sorted lists, etc. All code is implemented with 0 dependencies and in pure Go co

Dec 4, 2022
Juniper is an extension to the Go standard library using generics, including containers, iterators, and streams.

Juniper Juniper is a library of extensions to the Go standard library using generics, including containers, iterators, and streams. container/tree con

Dec 25, 2022
Package set is a small wrapper around the official reflect package that facilitates loose type conversion and assignment into native Go types.

Package set is a small wrapper around the official reflect package that facilitates loose type conversion and assignment into native Go types. Read th

Dec 27, 2022
Go library for encoding native Go structures into generic map values.

wstructs origin: github.com/things-go/structs Go library for encoding native Go structures into generic map values. Installation Use go get. go ge

Jan 10, 2022
Operator Permissions Advisor is a CLI tool that will take a catalog image and statically parse it to determine what permissions an Operator will request of OLM during an install

Operator Permissions Advisor is a CLI tool that will take a catalog image and statically parse it to determine what permissions an Operator will request of OLM during an install. The permissions are aggregated from the following sources:

Apr 22, 2022
protoc-gen-grpc-gateway-ts is a Typescript client generator for the grpc-gateway project. It generates idiomatic Typescript clients that connect the web frontend and golang backend fronted by grpc-gateway.

protoc-gen-grpc-gateway-ts protoc-gen-grpc-gateway-ts is a Typescript client generator for the grpc-gateway project. It generates idiomatic Typescript

Dec 19, 2022
Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Bitbucket, and more
Quickly clone an entire org/users repositories into one directory - Supports GitHub, GitLab, Bitbucket, and more

ghorg ghorg allows you to quickly clone all of an orgs, or users repos into a single directory. This can be useful in many situations including Search

Jan 1, 2023
System resource usage profiler tool which regularly takes snapshots of the memory and CPU load of one or more running processes so as to dynamically build up a profile of their usage of system resources.
System resource usage profiler tool which regularly takes snapshots of the memory and CPU load of one or more running processes so as to dynamically build up a profile of their usage of system resources.

Vegeta is a system resource usage tracking tool built to regularly take snapshots of the memory and CPU load of one or more running processes, so as to dynamically build up a profile of their usage of system resources.

Jan 16, 2022