54 lines
999 B
Go
54 lines
999 B
Go
package hubic
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/ncw/swift"
|
|
)
|
|
|
|
// auth is an authenticator for swift
|
|
type auth struct {
|
|
f *Fs
|
|
}
|
|
|
|
// newAuth creates a swift authenticator
|
|
func newAuth(f *Fs) *auth {
|
|
return &auth{
|
|
f: f,
|
|
}
|
|
}
|
|
|
|
// Request constructs a http.Request for authentication
|
|
//
|
|
// returns nil for not needed
|
|
func (a *auth) Request(*swift.Connection) (*http.Request, error) {
|
|
err := a.f.getCredentials()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return nil, nil
|
|
}
|
|
|
|
// Response parses the result of an http request
|
|
func (a *auth) Response(resp *http.Response) error {
|
|
return nil
|
|
}
|
|
|
|
// The public storage URL - set Internal to true to read
|
|
// internal/service net URL
|
|
func (a *auth) StorageUrl(Internal bool) string {
|
|
return a.f.credentials.Endpoint
|
|
}
|
|
|
|
// The access token
|
|
func (a *auth) Token() string {
|
|
return a.f.credentials.Token
|
|
}
|
|
|
|
// The CDN url if available
|
|
func (a *auth) CdnUrl() string {
|
|
return ""
|
|
}
|
|
|
|
// Check the interfaces are satisfied
|
|
var _ swift.Authenticator = (*auth)(nil)
|