Documentation
¶
Index ¶
- Constants
- Variables
- type AccountPermissions
- type AccountResourceTypes
- type AccountServices
- type AccountSignatureValues
- type BlobPermissions
- type BlobSignatureValues
- type ContainerPermissions
- type IPEndpointStyleInfo
- type IPRange
- type Protocol
- type QueryParameters
- func (p *QueryParameters) AgentObjectID() string
- func (p *QueryParameters) CacheControl() string
- func (p *QueryParameters) ContentDisposition() string
- func (p *QueryParameters) ContentEncoding() string
- func (p *QueryParameters) ContentLanguage() string
- func (p *QueryParameters) ContentType() string
- func (p *QueryParameters) Encode() string
- func (p *QueryParameters) ExpiryTime() time.Time
- func (p *QueryParameters) IPRange() IPRange
- func (p *QueryParameters) Identifier() string
- func (p *QueryParameters) Permissions() string
- func (p *QueryParameters) PreauthorizedAgentObjectID() string
- func (p *QueryParameters) Protocol() Protocol
- func (p *QueryParameters) Resource() string
- func (p *QueryParameters) ResourceTypes() string
- func (p *QueryParameters) Services() string
- func (p *QueryParameters) Signature() string
- func (p *QueryParameters) SignedCorrelationID() string
- func (p *QueryParameters) SignedDirectoryDepth() string
- func (p *QueryParameters) SignedExpiry() time.Time
- func (p *QueryParameters) SignedOID() string
- func (p *QueryParameters) SignedService() string
- func (p *QueryParameters) SignedStart() time.Time
- func (p *QueryParameters) SignedTID() string
- func (p *QueryParameters) SignedVersion() string
- func (p *QueryParameters) SnapshotTime() time.Time
- func (p *QueryParameters) StartTime() time.Time
- func (p *QueryParameters) Version() string
- type SharedKeyCredential
- type URLParts
- type UserDelegationCredential
Constants ¶
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 ¶
var (
// Version is the default version encoded in the SAS token.
Version = "2019-12-12"
)
Functions ¶
This section is empty.
Types ¶
type AccountPermissions ¶
type AccountPermissions struct {
Read, Write, Delete, DeletePreviousVersion, List, Add, Create, Update, Process, Tag, FilterByTags 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 AccountSASSignatureValues's 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 AccountSASSignatureValues's 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 AccountSASSignatureValues's 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 AccountSASSignatureValues's ResourceTypes field.
type AccountServices ¶
type AccountServices struct {
Blob, Queue, File bool
}
AccountServices type simplifies creating the services string for an Azure Storage Account SAS. Initialize an instance of this type and then call its String method to set AccountSASSignatureValues's Services field.
func (*AccountServices) String ¶
func (s *AccountServices) String() string
String produces the SAS services string for an Azure Storage account. Call this method to set AccountSASSignatureValues's Services 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 a AccountSASPermissions and then call String()
IPRange IPRange `param:"sip"`
Services string `param:"ss"` // Create by initializing AccountSASServices and then call String()
ResourceTypes string `param:"srt"` // Create by initializing AccountSASResourceTypes and then call String()
}
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.
func (AccountSignatureValues) SignWithUserDelegation ¶
func (v AccountSignatureValues) SignWithUserDelegation(userDelegationCredential *UserDelegationCredential) (QueryParameters, error)
SignWithUserDelegation uses an account's UserDelegationKey to sign this signature values to produce the proper SAS query parameters.
type BlobPermissions ¶
type BlobPermissions struct {
Read, Add, Create, Write, Delete, DeletePreviousVersion, Tag, List, Move, Execute, Ownership, Permissions bool
}
BlobPermissions 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 BlobSASSignatureValues's Permissions field.
func (*BlobPermissions) String ¶
func (p *BlobPermissions) String() string
String produces the SAS permissions string for an Azure Storage blob. Call this method to set BlobSignatureValues's Permissions field.
type BlobSignatureValues ¶
type BlobSignatureValues 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
SnapshotTime time.Time
Permissions string `param:"sp"` // Create by initializing a ContainerSASPermissions or BlobSASPermissions and then call String()
IPRange IPRange `param:"sip"`
Identifier string `param:"si"`
ContainerName string
BlobName string // Use "" to create a Container SAS
Directory string // Not nil for a directory SAS (ie sr=d)
CacheControl string // rscc
ContentDisposition string // rscd
ContentEncoding string // rsce
ContentLanguage string // rscl
ContentType string // rsct
BlobVersion string // sr=bv
AgentObjectId string
CorrelationId string
}
BlobSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage container or blob. For more information, see https://docs.microsoft.com/rest/api/storageservices/constructing-a-service-sas
func (BlobSignatureValues) SignWithSharedKey ¶
func (v BlobSignatureValues) SignWithSharedKey(sharedKeyCredential *SharedKeyCredential) (QueryParameters, error)
SignWithSharedKey uses an account's SharedKeyCredential to sign this signature values to produce the proper SAS query parameters.
func (BlobSignatureValues) SignWithUserDelegation ¶
func (v BlobSignatureValues) SignWithUserDelegation(userDelegationCredential *UserDelegationCredential) (QueryParameters, error)
SignWithUserDelegation uses an account's UserDelegationCredential to sign this signature values to produce the proper SAS query parameters.
type ContainerPermissions ¶
type ContainerPermissions struct {
Read, Add, Create, Write, Delete, DeletePreviousVersion, List, Tag bool
Execute, ModifyOwnership, ModifyPermissions bool // Hierarchical Namespace only
}
ContainerPermissions 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 BlobSASSignatureValues's 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 (*ContainerPermissions) String ¶
func (p *ContainerPermissions) String() string
String produces the SAS permissions string for an Azure Storage container. Call this method to set BlobSASSignatureValues's 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.
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, deleteSASParametersFromValues bool) QueryParameters
NewQueryParameters creates and initializes a QueryParameters object based on the query parameter map's passed-in values. If deleteSASParametersFromValues is true, all SAS-related query parameters are removed from the passed-in map. If deleteSASParametersFromValues is false, the map passed-in map is unaltered.
func (*QueryParameters) AgentObjectID ¶
func (p *QueryParameters) AgentObjectID() string
AgentObjectID returns agentObjectID
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 sontentType
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) PreauthorizedAgentObjectID ¶
func (p *QueryParameters) PreauthorizedAgentObjectID() string
PreauthorizedAgentObjectID returns preauthorizedAgentObjectID
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) 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) 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
ContainerName string // "" if no container
BlobName string // "" if no blob
Snapshot string // "" if not a snapshot
SAS QueryParameters
UnparsedParams string
VersionID string // "" if not versioning enabled
}
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.
type UserDelegationCredential ¶
type UserDelegationCredential = exported.UserDelegationCredential
UserDelegationCredential contains an account's name and its user delegation key.