diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2018-01-26 17:44:33 +0100 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2018-01-26 18:04:04 +0100 |
| commit | a9595114a691fd04ba043c1b1564741a107bbcdd (patch) | |
| tree | ce88a4d9f71f25b9ff0e26765e818f7a061baac1 /doc.go | |
| parent | a4fc95d01fa381ee1752c85a462f1537bdbc8d70 (diff) | |
| download | go-schwift-a9595114a691fd04ba043c1b1564741a107bbcdd.tar.gz | |
add Account, package docs
Diffstat (limited to 'doc.go')
| -rw-r--r-- | doc.go | 62 |
1 files changed, 62 insertions, 0 deletions
@@ -0,0 +1,62 @@ +/****************************************************************************** +* +* Copyright 2018 Stefan Majewsky <majewsky@gmx.net> +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +******************************************************************************/ + +/* + +Package schwift is a client library for OpenStack Swift +(https://github.com/openstack/swift, https://openstack.org). + +It uses Gophercloud (https://github.com/gophercloud/gophercloud) for +authentication, so you usually start by obtaining a gophercloud.ServiceClient +for Swift like so: + + authOptions, err := openstack.AuthOptionsFromEnv() + provider, err := openstack.AuthenticatedClient(authOptions) + client, err := openstack.NewObjectStorageV1(provider, gophercloud.EndpointOpts {}) + +Or, if you use Swift's built-in authentication instead of Keystone: + + provider, err := openstack.NewClient("http://swift.example.com:8080") + client, err := swauth.NewObjectStorageV1(provider, swauth.AuthOpts { + User: "project:user", + Key: "password", + }) + +Then, in both cases, you use schwift.AccountFromClient() to obtain a +schwift.Account instance, from which point you have access to all of schwift's +API. + +Caching + +When a GET or HEAD request is sent by an Account, Container or Object instance, +the metadata associated with that thing will be stored in that instance. You +can therefore access metadata attributes directly via their accessors and +everything just works, i.e. the first call to a getter will retrieve the +metadata: + + obj := account.Container("foo").Object("bar") + + t, err := obj.LastModified() //sends HTTP request "HEAD <storage-url>/foo/bar" + assert(err == nil) + t, err := obj.LastModified() //returns cached value immediately + +If this behavior is not desired, the Invalidate() method can be used to clear +caches on any Account, Container or Object instance. + +*/ +package schwift |
