sas

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 9, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Version is the default version encoded in the SAS token.
	Version = "2020-02-10"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AccountPermissions

type AccountPermissions struct {
	Read, Write, Delete, DeletePreviousVersion, PermanentDelete, List, Add, Create, Update, Process, Tag, FilterByTags, 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 a AccountPermissions and then call String()
	IPRange       IPRange   `param:"sip"`
	ResourceTypes string    `param:"srt"` // Create by initializing AccountResourceTypes 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.

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/queuename"

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 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) 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) UnauthorizedObjectID

func (p *QueryParameters) UnauthorizedObjectID() string

UnauthorizedObjectID returns unauthorizedObjectID

func (*QueryParameters) Version

func (p *QueryParameters) Version() string

Version returns version

type QueuePermissions

type QueuePermissions struct {
	Read, Add, Update, Process bool
}

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

func (*QueuePermissions) String

func (p *QueuePermissions) String() string

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

type QueueSignatureValues

type QueueSignatureValues 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 a QueuePermissions and then call String()
	IPRange     IPRange   `param:"sip"`
	Identifier  string    `param:"si"`
	QueueName   string
}

QueueSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage Queue. For more information on creating service sas, see https://docs.microsoft.com/rest/api/storageservices/constructing-a-service-sas Delegation SAS not supported for queues service

func (QueueSignatureValues) SignWithSharedKey

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

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

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.queue.core.windows.net", "10.132.141.33", "10.132.141.33:80"
	IPEndpointStyleInfo IPEndpointStyleInfo
	QueueName           string // "" if no queue
	SAS                 QueryParameters
	UnparsedParams      string
}

URLParts object represents the components that make up an Azure Storage Queue 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 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 and unparsed query parameters.

Jump to

Keyboard shortcuts

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