GCS image uploader: Add tests (#28521)
* GCS uploader: Add tests Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Use go generate Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
// Package gcsifaces provides interfaces for Google Cloud Storage.
|
||||
//go:generate mockgen -source $GOFILE -destination ../../mocks/mock_gcsifaces/mocks.go StorageClient
|
||||
package gcsifaces
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
|
||||
"cloud.google.com/go/storage"
|
||||
"golang.org/x/oauth2/google"
|
||||
"golang.org/x/oauth2/jwt"
|
||||
)
|
||||
|
||||
// StorageClient represents a GCS client.
|
||||
type StorageClient interface {
|
||||
// Bucket gets a StorageBucket.
|
||||
Bucket(name string) StorageBucket
|
||||
// FindDefaultCredentials finds default Google credentials.
|
||||
FindDefaultCredentials(ctx context.Context, scope string) (*google.Credentials, error)
|
||||
// JWTConfigFromJSON gets JWT config from a JSON document.
|
||||
JWTConfigFromJSON(keyJSON []byte) (*jwt.Config, error)
|
||||
// SignedURL returns a signed URL for the specified object.
|
||||
SignedURL(bucket, name string, opts *storage.SignedURLOptions) (string, error)
|
||||
}
|
||||
|
||||
// StorageBucket represents a GCS bucket.
|
||||
type StorageBucket interface {
|
||||
// Object returns a StorageObject for a key.
|
||||
Object(key string) StorageObject
|
||||
}
|
||||
|
||||
// StorageObject represents a GCS object.
|
||||
type StorageObject interface {
|
||||
// NewWriter returns a new StorageWriter.
|
||||
NewWriter(ctx context.Context) StorageWriter
|
||||
}
|
||||
|
||||
// StorageWriter represents a GCS writer.
|
||||
type StorageWriter interface {
|
||||
io.WriteCloser
|
||||
|
||||
// SetACL sets a pre-defined ACL.
|
||||
SetACL(acl string)
|
||||
}
|
||||
Reference in New Issue
Block a user