diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | Makefile | 3 | ||||
| -rw-r--r-- | blobby/Makefile | 28 | ||||
| -rw-r--r-- | blobby/main.go | 58 | ||||
| -rw-r--r-- | cf-r2/Makefile | 30 | ||||
| -rw-r--r-- | cf-r2/download.go | 8 |
6 files changed, 124 insertions, 4 deletions
@@ -14,6 +14,7 @@ go-clone-test/go-clone-test go-clone-test/goclonetest go-clone-test/goclonetesttest going2git/going2git +blobby/blobby cf-r2/cf-r2 cf-r2/download cf-r2/upload @@ -4,3 +4,6 @@ all: make -C zoopb-example make -C testGui make -C going2git # actually builds against git2go using libgit2 v1.8.4 + +clean: + rm -f go.* diff --git a/blobby/Makefile b/blobby/Makefile new file mode 100644 index 0000000..07bcba5 --- /dev/null +++ b/blobby/Makefile @@ -0,0 +1,28 @@ +VERSION = $(shell git describe --tags) +GUIVERSION = $(shell git describe --tags) +BUILDTIME = $(shell date +%s) + +all: build + +build: goimports + GO111MODULE=off go build -v \ + -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}" + +vet: + GO111MODULE=off go vet + +goimports: + goimports -w *.go + # // to globally reset paths: + # // gofmt -w -r '"go.wit.com/gui/gadgets" -> "go.wit.com/lib/gadgets"' *.go + +gocui: build + reset + ./go-clone-test --gui gocui + +install: goimports + GO111MODULE=off go install \ + -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}" + +force: build + ./go-clone-test --force diff --git a/blobby/main.go b/blobby/main.go new file mode 100644 index 0000000..fda762b --- /dev/null +++ b/blobby/main.go @@ -0,0 +1,58 @@ +package main + +import ( + "gocloud.dev/blob" + // _ "gocloud.dev/blob/<driver>" + + _ "github.com/go-sql-driver/mysql" + + "context" + "fmt" + + _ "gocloud.dev/blob/mysql" +) + +func main() { + bucket, err := blob.OpenBucket(context.Background(), "<driver-url>") + if err != nil { + return fmt.Errorf("could not open bucket: %v", err) + } + defer bucket.Close() + // bucket is a *blob.Bucket; see usage below + + // You can wrap a *blob.Bucket to always operate on a subfolder of the bucket using blob.PrefixedBucket: + + // import "gocloud.dev/blob" + + // Wrap the bucket using blob.PrefixedBucket. + // The prefix should end with "/", so that the resulting bucket operates + // in a subfolder. + bucket = blob.PrefixedBucket(bucket, "a/subfolder/") + + // The original bucket is no longer usable; it has been closed. + // The wrapped bucket should be closed when done. + defer bucket.Close() + + // Bucket operations on <key> will be translated to "a/subfolder/<key>". + + // Alternatively, you can configure the prefix directly in the blob.OpenBucket URL: + + /* + import ( + "context" + "gocloud.dev/blob" + ) + */ + + // Connect to a bucket using a URL, using the "prefix" query parameter to + // target a subfolder in the bucket. + // The prefix should end with "/", so that the resulting bucket operates + // in a subfolder. + b, err := blob.OpenBucket(ctx, "mem://?prefix=a/subfolder/") + if err != nil { + return err + } + defer b.Close() + + // Bucket operations on <key> will be translated to "a/subfolder/<key>". +} diff --git a/cf-r2/Makefile b/cf-r2/Makefile new file mode 100644 index 0000000..2b57a99 --- /dev/null +++ b/cf-r2/Makefile @@ -0,0 +1,30 @@ +VERSION = $(shell git describe --tags) +GUIVERSION = $(shell git describe --tags) +BUILDTIME = $(shell date +%s) + +all: build + +build: goimports go.mod + go build -v upload.go + go build -v download.go + go build -v main.go + +raw: + GO111MODULE=off go build -v \ + -ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}" + +vet: + GO111MODULE=off go vet + +goimports: + goimports -w *.go + # // to globally reset paths: + # // gofmt -w -r '"go.wit.com/gui/gadgets" -> "go.wit.com/lib/gadgets"' *.go + +go.mod: + go mod init + go mod tidy + +clean: + rm -f go.* + rm -f upload download main diff --git a/cf-r2/download.go b/cf-r2/download.go index b2f4184..887ac99 100644 --- a/cf-r2/download.go +++ b/cf-r2/download.go @@ -10,10 +10,10 @@ import ( ) const ( - r2Endpoint = "<account-id>.r2.cloudflarestorage.com" // Replace with your R2 endpoint - r2AccessKey = "<your-access-key>" // Replace with your Access Key - r2SecretKey = "<your-secret-key>" // Replace with your Secret Key - r2BucketName = "example-bucket" // Replace with your bucket name + r2Endpoint = "<account-id>.r2.cloudflarestorage.com" // Replace with your R2 endpoint + r2AccessKey = "<your-access-key>" // Replace with your Access Key + r2SecretKey = "<your-secret-key>" // Replace with your Secret Key + r2BucketName = "example-bucket" // Replace with your bucket name ) func main() { |
