https://github.com/ncw/swift
Go language interface to Swift / Openstack Object Storage / Rackspace cloud files (golang)
https://github.com/ncw/swift
Last synced: over 1 year ago
JSON representation
Go language interface to Swift / Openstack Object Storage / Rackspace cloud files (golang)
- Host: GitHub
- URL: https://github.com/ncw/swift
- Owner: ncw
- License: mit
- Created: 2012-11-11T23:01:03.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2024-08-29T06:57:12.000Z (almost 2 years ago)
- Last Synced: 2025-04-13T03:59:41.794Z (over 1 year ago)
- Language: Go
- Size: 858 KB
- Stars: 317
- Watchers: 18
- Forks: 107
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: COPYING
Awesome Lists containing this project
README
Swift
=====
This package provides an easy to use library for interfacing with Swift / Openstack Object Storage / Rackspace cloud
files from the Go Language
[](https://github.com/ncw/swift/actions)
[](https://pkg.go.dev/github.com/ncw/swift/v2)
Install
-------
Use go to install the library
go get github.com/ncw/swift/v2
Usage
-----
See here for full package docs
- https://pkg.go.dev/github.com/ncw/swift/v2
Here is a short example from the docs
```go
import "github.com/ncw/swift/v2"
// Create a connection
c := swift.Connection{
UserName: "user",
ApiKey: "key",
AuthUrl: "auth_url",
Domain: "domain", // Name of the domain (v3 auth only)
Tenant: "tenant", // Name of the tenant (v2 auth only)
}
// Authenticate
err := c.Authenticate()
if err != nil {
panic(err)
}
// List all the containers
containers, err := c.ContainerNames(nil)
fmt.Println(containers)
// etc...
```
Migrating from `v1`
-----
The library has current major version v2. If you want to migrate from the first version of
library `github.com/ncw/swift` you have to explicitly add the `/v2` suffix to the imports.
Most of the exported functions were added a new `context.Context` parameter in the `v2`, which you will have to provide
when migrating.
Additions
---------
The `rs` sub project contains a wrapper for the Rackspace specific CDN Management interface.
Testing
-------
To run the tests you can either use an embedded fake Swift server either use a real Openstack Swift server or a
Rackspace Cloud files account.
When using a real Swift server, you need to set these environment variables before running the tests
export SWIFT_API_USER='user'
export SWIFT_API_KEY='key'
export SWIFT_AUTH_URL='https://url.of.auth.server/v1.0'
And optionally these if using v2 authentication
export SWIFT_TENANT='TenantName'
export SWIFT_TENANT_ID='TenantId'
And optionally these if using v3 authentication
export SWIFT_TENANT='TenantName'
export SWIFT_TENANT_ID='TenantId'
export SWIFT_API_DOMAIN_ID='domain id'
export SWIFT_API_DOMAIN='domain name'
And optionally these if using v3 trust
export SWIFT_TRUST_ID='TrustId'
And optionally this if you want to skip server certificate validation
export SWIFT_AUTH_INSECURE=1
And optionally this to configure the connect channel timeout, in seconds
export SWIFT_CONNECTION_CHANNEL_TIMEOUT=60
And optionally this to configure the data channel timeout, in seconds
export SWIFT_DATA_CHANNEL_TIMEOUT=60
Then run the tests with `go test`
License
-------
This is free software under the terms of MIT license (check COPYING file included in this package).
Contact and support
-------------------
The project website is at:
- https://github.com/ncw/swift
There you can file bug reports, ask for help or contribute patches.
Authors
-------
- Nick Craig-Wood
Contributors
------------
- Brian "bojo" Jones
- Janika Liiv
- Yamamoto, Hirotaka
- Stephen
- platformpurple
- Paul Querna
- Livio Soares
- thesyncim
- lsowen
- Sylvain Baubeau
- Chris Kastorff
- Dai HaoJun
- Hua Wang
- Fabian Ruff
- Arturo Reuschenbach Puncernau
- Petr Kotek
- Stefan Majewsky
- Cezar Sa Espinola
- Sam Gunaratne
- Richard Scothern
- Michel Couillard
- Christopher Waldon
- dennis
- hag
- Alexander Neumann
- eclipseo <30413512+eclipseo@users.noreply.github.com>
- Yuri Per
- Falk Reimann
- Arthur Paim Arnold
- Bruno Michel
- Charles Hsu
- Omar Ali
- Andreas Andersen
- kayrus
- CodeLingo Bot
- Jérémy Clerc
- 4xicom <37339705+4xicom@users.noreply.github.com>
- Bo
- Thiago da Silva
- Brandon WELSCH
- Damien Tournoud
- Pedro Kiefer
- Martin Chodur
- Devendra
- timss
- Jos Houtman
- Paul Collins
- Joe Cai
- fsantagostinobietti <6057026+fsantagostinobietti@users.noreply.github.com>