openstackswift

module
v0.0.0-...-a9e6e50 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2024 License: MIT

README

OpenStackSwift

Only for development and test purpose.

OpenStackSwift is a Golang server that responds to the same calls Openstack Swift responds to. It's a convenient way to use Swift out-of-the-box without any fancy dependencies and configuration. It aims to be portable and lightweight.

OpenStackSwift doesn't support all of the Swift command set, but the basic ones like upload (with TTL), download, list, copy, authentication, and make containers are supported. More coming soon™.

https://hub.docker.com/r/mdouchement/openstackswift

Running

$ go run cmd/swift/main.go server -b localhost

# http://localhost:5000
# tenant: test
# username: tester
# password: testing

# http://localhost:5000/v3
# tenant: test
# domain: Default
# region: RegionOne
# name: tester
# password: testing

# storage token: tk_tester

Environment variables:

SWIFT_STORAGE_TENANT
SWIFT_STORAGE_DOMAIN
SWIFT_STORAGE_USERNAME
SWIFT_STORAGE_PASSWORD

License

MIT. See the LICENSE for more details.

Development

Building
go build -ldflags "-s -w" -o swift ./cmd/swift/main.go
Testing

Running tests with coverage

go test -coverpkg=./internal/database,./internal/model,./internal/scheduler,./internal/storage,./internal/webserver,./internal/webserver/middleware,./internal/webserver/serializer,./internal/webserver/service,./internal/webserver/weberror,./internal/xpath,./tests -coverprofile=cprof.out -v ./tests/
go tool cover -html=cprof.out -o coverage.html

Build docker
docker build . -t openstackswift
Contributing
  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Ensure its building and that the tests pass
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL