Documentation ¶
Overview ¶
Package gocloudsampleprovider provides a blob implementation that uses the filesystem. Use OpenBucket to construct a *blob.Bucket.
URLs ¶
For blob.OpenBucket, gocloudsampleprovider registers for the scheme "gcspfile". To customize the URL opener, or for more details on the URL format, see URLOpener. See https://godoc.org/gocloud.dev#hdr-URLs for background information.
Escaping ¶
Go CDK supports all UTF-8 strings; to make this work with providers lacking full UTF-8 support, strings must be escaped (during writes) and unescaped (during reads). The following escapes are performed for gocloudsampleprovider:
- Blob keys: ASCII characters 0-31 are escaped to "__0x<hex>__". If os.PathSeparator != "/", it is also escaped. Additionally, the "/" in "../", the trailing "/" in "//", and a trailing "/" is key names are escaped in the same way. On Windows, the characters "<>:"|?*" are also escaped.
As ¶
gocloudsampleprovider exposes the following types for As:
- Error: *os.PathError
Index ¶
Constants ¶
const Scheme = "gcspfile"
Scheme is the URL scheme gocloudsampleprovider registers its URLOpener under on blob.DefaultMux.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Options ¶
type Options struct { // URLSigner implements signing URLs (to allow access to a resource without // further authorization) and verifying that a given URL is unexpired and // contains a signature produced by the URLSigner. // URLSigner is only required for utilizing the SignedURL API. URLSigner URLSigner }
Options sets options for constructing a *blob.Bucket backed by gocloudsampleprovider.
type URLSigner ¶
type URLSigner interface { // URLFromKey defines how the bucket's object key will be turned // into a signed URL. URLFromKey must be safe to call from multiple goroutines. URLFromKey(ctx context.Context, key string, opts *driver.SignedURLOptions) (*url.URL, error) // KeyFromURL must be able to validate a URL returned from URLFromKey. // KeyFromURL must only return the object if if the URL is // both unexpired and authentic. KeyFromURL must be safe to call from // multiple goroutines. Implementations of KeyFromURL should not modify // the URL argument. KeyFromURL(ctx context.Context, surl *url.URL) (string, error) }
URLSigner defines an interface for creating and verifying a signed URL for objects in a gocloudsampleprovider bucket. Signed URLs are typically used for granting access to an otherwise-protected resource without requiring further authentication, and callers should take care to restrict the creation of signed URLs as is appropriate for their application.
type URLSignerHMAC ¶
type URLSignerHMAC struct {
// contains filtered or unexported fields
}
URLSignerHMAC signs URLs by adding the object key, expiration time, and a hash-based message authentication code (HMAC) into the query parameters. Values of URLSignerHMAC with the same secret key will accept URLs produced by others as valid.
func NewURLSignerHMAC ¶
func NewURLSignerHMAC(baseURL *url.URL, secretKey []byte) *URLSignerHMAC
NewURLSignerHMAC creates a URLSignerHMAC. If the secret key is empty, then NewURLSignerHMAC panics.
func (*URLSignerHMAC) KeyFromURL ¶
KeyFromURL checks expiry and signature, and returns the object key only if the signed URL is both authentic and unexpired.
func (*URLSignerHMAC) URLFromKey ¶
func (h *URLSignerHMAC) URLFromKey(ctx context.Context, key string, opts *driver.SignedURLOptions) (*url.URL, error)
URLFromKey creates a signed URL by copying the baseURL and appending the object key, expiry, and signature as a query params.