mirror of
https://github.com/rclone/rclone.git
synced 2024-12-25 16:38:59 +01:00
55 lines
999 B
Go
55 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)
|