sas

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 29, 2024 License: MIT Imports: 9 Imported by: 2

Documentation

Index

Constants

View Source
const (
	TimeFormat = "2006-01-02T15:04:05Z" // "2017-07-27T00:00:00Z" // ISO 8601
)

TimeFormat represents the format of a SAS start or expiry time. Use it when formatting/parsing a time.Time.

Variables

View Source
var (
	// Version is the default version encoded in the SAS token.
	Version = "2020-12-06"
)

Functions

This section is empty.

Types

type AccountPermissions

type AccountPermissions struct {
	Read, Write, Delete, DeletePreviousVersion, PermanentDelete, List, Add, Create, Update, Process, FilterByTags, Tag, SetImmutabilityPolicy bool
}

AccountPermissions type simplifies creating the permissions string for an Azure Storage Account SAS. Initialize an instance of this type and then call its String method to set AccountSignatureValues' Permissions field.

func (*AccountPermissions) String

func (p *AccountPermissions) String() string

String produces the SAS permissions string for an Azure Storage account. Call this method to set AccountSignatureValues' Permissions field.

type AccountResourceTypes

type AccountResourceTypes struct {
	Service, Container, Object bool
}

AccountResourceTypes type simplifies creating the resource types string for an Azure Storage Account SAS. Initialize an instance of this type and then call its String method to set AccountSignatureValues' ResourceTypes field.

func (*AccountResourceTypes) String

func (rt *AccountResourceTypes) String() string

String produces the SAS resource types string for an Azure Storage account. Call this method to set AccountSignatureValues' ResourceTypes field.

type AccountSignatureValues

type AccountSignatureValues struct {
	Version         string    `param:"sv"`  // If not specified, this format to SASVersion
	Protocol        Protocol  `param:"spr"` // See the SASProtocol* constants
	StartTime       time.Time `param:"st"`  // Not specified if IsZero
	ExpiryTime      time.Time `param:"se"`  // Not specified if IsZero
	Permissions     string    `param:"sp"`  // Create by initializing AccountPermissions and then call String()
	IPRange         IPRange   `param:"sip"`
	ResourceTypes   string    `param:"srt"` // Create by initializing AccountResourceTypes and then call String()
	EncryptionScope string    `param:"ses"`
}

AccountSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage account. For more information, see https://docs.microsoft.com/rest/api/storageservices/constructing-an-account-sas

func (AccountSignatureValues) SignWithSharedKey

func (v AccountSignatureValues) SignWithSharedKey(sharedKeyCredential *SharedKeyCredential) (QueryParameters, error)

SignWithSharedKey uses an account's shared key credential to sign this signature values to produce the proper SAS query parameters.

type DatalakeSignatureValues

type DatalakeSignatureValues struct {
	Version        string    `param:"sv"`  // If not specified, this defaults to Version
	Protocol       Protocol  `param:"spr"` // See the Protocol* constants
	StartTime      time.Time `param:"st"`  // Not specified if IsZero
	ExpiryTime     time.Time `param:"se"`  // Not specified if IsZero
	Permissions    string    `param:"sp"`  // Create by initializing FileSystemPermissions, FilePermissions or DirectoryPermissions and then call String()
	IPRange        IPRange   `param:"sip"`
	Identifier     string    `param:"si"`
	FileSystemName string
	// Use "" to create a FileSystem SAS
	// DirectoryPath will set this to "" if it is passed
	FilePath string
	// Not nil for a directory SAS (ie sr=d)
	// Use "" to create a FileSystem SAS
	DirectoryPath        string
	CacheControl         string // rscc
	ContentDisposition   string // rscd
	ContentEncoding      string // rsce
	ContentLanguage      string // rscl
	ContentType          string // rsct
	AuthorizedObjectID   string // saoid
	UnauthorizedObjectID string // suoid
	CorrelationID        string // scid
	EncryptionScope      string `param:"ses"`
}

DatalakeSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage filesystem or path. For more information on creating service sas, see https://docs.microsoft.com/rest/api/storageservices/constructing-a-service-sas For more information on creating user delegation sas, see https://docs.microsoft.com/rest/api/storageservices/create-user-delegation-sas

func (DatalakeSignatureValues) SignWithSharedKey

func (v DatalakeSignatureValues) SignWithSharedKey(sharedKeyCredential *SharedKeyCredential) (QueryParameters, error)

SignWithSharedKey uses an account's SharedKeyCredential to sign this signature values to produce the proper SAS query parameters.

func (DatalakeSignatureValues) SignWithUserDelegation

func (v DatalakeSignatureValues) SignWithUserDelegation(userDelegationCredential *UserDelegationCredential) (QueryParameters, error)

SignWithUserDelegation uses an account's UserDelegationCredential to sign this signature values to produce the proper SAS query parameters.

type DirectoryPermissions

type DirectoryPermissions struct {
	Read, Add, Create, Write, Delete, List, Move bool
	Execute, Ownership, Permissions              bool
}

DirectoryPermissions type simplifies creating the permissions string for an Azure Storage blob SAS. Initialize an instance of this type and then call its String method to set BlobSignatureValues' Permissions field.

func (*DirectoryPermissions) String

func (p *DirectoryPermissions) String() string

String produces the SAS permissions string for an Azure Storage blob. Call this method to set BlobSignatureValues' Permissions field.

type FilePermissions

type FilePermissions struct {
	Read, Add, Create, Write, Delete, List, Move bool
	Execute, Ownership, Permissions              bool
}

FilePermissions type simplifies creating the permissions string for an Azure Storage blob SAS. Initialize an instance of this type and then call its String method to set BlobSignatureValues' Permissions field.

func (*FilePermissions) String

func (p *FilePermissions) String() string

String produces the SAS permissions string for an Azure Storage blob. Call this method to set BlobSignatureValues' Permissions field.

type FileSystemPermissions

type FileSystemPermissions struct {
	Read, Add, Create, Write, Delete, List, Move bool
	Execute, ModifyOwnership, ModifyPermissions  bool // Meant for hierarchical namespace accounts
}

FileSystemPermissions type simplifies creating the permissions string for an Azure Storage container SAS. Initialize an instance of this type and then call its String method to set BlobSignatureValues' Permissions field. All permissions descriptions can be found here: https://docs.microsoft.com/en-us/rest/api/storageservices/create-service-sas#permissions-for-a-directory-container-or-blob

func (*FileSystemPermissions) String

func (p *FileSystemPermissions) String() string

String produces the SAS permissions string for an Azure Storage container. Call this method to set BlobSignatureValues' Permissions field.

type IPEndpointStyleInfo

type IPEndpointStyleInfo struct {
	AccountName string // "" if not using IP endpoint style
}

IPEndpointStyleInfo is used for IP endpoint style URL when working with Azure storage emulator. Ex: "https://10.132.141.33/accountname/containername"

type IPRange

type IPRange struct {
	Start net.IP // Not specified if length = 0
	End   net.IP // Not specified if length = 0
}

IPRange represents a SAS IP range's start IP and (optionally) end IP.

func (*IPRange) String

func (ipr *IPRange) String() string

String returns a string representation of an IPRange.

type Protocol

type Protocol string

Protocol indicates the http/https.

const (
	// ProtocolHTTPS can be specified for a SAS protocol.
	ProtocolHTTPS Protocol = "https"

	// ProtocolHTTPSandHTTP can be specified for a SAS protocol.
	ProtocolHTTPSandHTTP Protocol = "https,http"
)

type QueryParameters

type QueryParameters struct {
	// contains filtered or unexported fields
}

QueryParameters object represents the components that make up an Azure Storage SAS' query parameters. You parse a map of query parameters into its fields by calling NewQueryParameters(). You add the components to a query parameter map by calling AddToValues(). NOTE: Changing any field requires computing a new SAS signature using a XxxSASSignatureValues type. This type defines the components used by all Azure Storage resources (Containers, Blobs, Files, & Queues).

func NewQueryParameters

func NewQueryParameters(values url.Values) QueryParameters

NewQueryParameters creates and initializes a QueryParameters object based on the query parameter map's passed-in values. If a key is unrecognized, it is ignored

func (*QueryParameters) AuthorizedObjectID

func (p *QueryParameters) AuthorizedObjectID() string

AuthorizedObjectID returns authorizedObjectID.

func (*QueryParameters) CacheControl

func (p *QueryParameters) CacheControl() string

CacheControl returns cacheControl.

func (*QueryParameters) ContentDisposition

func (p *QueryParameters) ContentDisposition() string

ContentDisposition returns contentDisposition.

func (*QueryParameters) ContentEncoding

func (p *QueryParameters) ContentEncoding() string

ContentEncoding returns contentEncoding.

func (*QueryParameters) ContentLanguage

func (p *QueryParameters) ContentLanguage() string

ContentLanguage returns contentLanguage.

func (*QueryParameters) ContentType

func (p *QueryParameters) ContentType() string

ContentType returns contentType.

func (*QueryParameters) Encode

func (p *QueryParameters) Encode() string

Encode encodes the SAS query parameters into URL encoded form sorted by key.

func (*QueryParameters) ExpiryTime

func (p *QueryParameters) ExpiryTime() time.Time

ExpiryTime returns expiryTime.

func (*QueryParameters) IPRange

func (p *QueryParameters) IPRange() IPRange

IPRange returns ipRange.

func (*QueryParameters) Identifier

func (p *QueryParameters) Identifier() string

Identifier returns identifier.

func (*QueryParameters) Permissions

func (p *QueryParameters) Permissions() string

Permissions returns permissions.

func (*QueryParameters) Protocol

func (p *QueryParameters) Protocol() Protocol

Protocol returns protocol.

func (*QueryParameters) Resource

func (p *QueryParameters) Resource() string

Resource returns resource.

func (*QueryParameters) ResourceTypes

func (p *QueryParameters) ResourceTypes() string

ResourceTypes returns resourceTypes.

func (*QueryParameters) Services

func (p *QueryParameters) Services() string

Services returns services.

func (*QueryParameters) Signature

func (p *QueryParameters) Signature() string

Signature returns signature.

func (*QueryParameters) SignedCorrelationID

func (p *QueryParameters) SignedCorrelationID() string

SignedCorrelationID returns signedCorrelationID.

func (*QueryParameters) SignedDirectoryDepth

func (p *QueryParameters) SignedDirectoryDepth() string

SignedDirectoryDepth returns signedDirectoryDepth.

func (*QueryParameters) SignedEncryptionScope added in v1.1.0

func (p *QueryParameters) SignedEncryptionScope() string

SignedEncryptionScope returns encryptionScope.

func (*QueryParameters) SignedExpiry

func (p *QueryParameters) SignedExpiry() time.Time

SignedExpiry returns signedExpiry.

func (*QueryParameters) SignedOID

func (p *QueryParameters) SignedOID() string

SignedOID returns signedOID.

func (*QueryParameters) SignedService

func (p *QueryParameters) SignedService() string

SignedService returns signedService.

func (*QueryParameters) SignedStart

func (p *QueryParameters) SignedStart() time.Time

SignedStart returns signedStart.

func (*QueryParameters) SignedTID

func (p *QueryParameters) SignedTID() string

SignedTID returns signedTID.

func (*QueryParameters) SignedVersion

func (p *QueryParameters) SignedVersion() string

SignedVersion returns signedVersion.

func (*QueryParameters) SnapshotTime

func (p *QueryParameters) SnapshotTime() time.Time

SnapshotTime returns snapshotTime.

func (*QueryParameters) StartTime

func (p *QueryParameters) StartTime() time.Time

StartTime returns startTime.

func (*QueryParameters) UnauthorizedObjectID

func (p *QueryParameters) UnauthorizedObjectID() string

UnauthorizedObjectID returns unauthorizedObjectID.

func (*QueryParameters) Version

func (p *QueryParameters) Version() string

Version returns version.

type SharedKeyCredential

type SharedKeyCredential = exported.SharedKeyCredential

SharedKeyCredential contains an account's name and its primary or secondary key.

type URLParts

type URLParts struct {
	Scheme              string // Ex: "https://"
	Host                string // Ex: "account.blob.core.windows.net", "10.132.141.33", "10.132.141.33:80"
	IPEndpointStyleInfo IPEndpointStyleInfo
	FileSystemName      string // "" if no container
	PathName            string // "" if no blob
	SAS                 QueryParameters
	UnparsedParams      string
}

URLParts object represents the components that make up an Azure Storage Container/Blob URL. NOTE: Changing any SAS-related field requires computing a new SAS signature.

func ParseURL

func ParseURL(u string) (URLParts, error)

ParseURL parses a URL initializing URLParts' fields including any SAS-related & snapshot query parameters. Any other query parameters remain in the UnparsedParams field.

func (URLParts) String

func (up URLParts) String() string

String returns a URL object whose fields are initialized from the URLParts fields. The URL's RawQuery field contains the SAS, snapshot, and unparsed query parameters.

type UserDelegationCredential

type UserDelegationCredential = exported.UserDelegationCredential

UserDelegationCredential contains an account's name and its user delegation key.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL