minio: github.com/minio/minio/cmd Index | Files | Directories

package cmd

import "github.com/minio/minio/cmd"

Package cmd This file implements helper functions to validate AWS Signature Version '4' authorization header.

This package provides comprehensive helpers for following signature types. - Based on Authorization header. - Based on Query parameters. - Based on Form POST policy.

Package cmd This file implements helper functions to validate Streaming AWS Signature Version '4' authorization header.

Index

Package Files

acl-handlers.go admin-handlers-config-kv.go admin-handlers-users.go admin-handlers.go admin-heal-ops.go admin-router.go admin-server-info.go api-datatypes.go api-errors.go api-headers.go api-resources.go api-response.go api-router.go api-utils.go auth-handler.go background-heal-ops.go background-newdisks-heal-ops.go bitrot-streaming.go bitrot-whole.go bitrot.go bootstrap-peer-server.go bucket-encryption-handlers.go bucket-encryption.go bucket-handlers-listobjects.go bucket-handlers.go bucket-lifecycle-handler.go bucket-notification-handlers.go bucket-policy-handlers.go build-constants.go common-main.go config-common.go config-current.go config-dir.go config-encrypted.go config-migrate.go config-versions.go config.go consolelogger.go copy-part-range.go crossdomain-xml-handler.go daily-lifecycle-ops.go data-usage-cache.go data-usage-cache_gen.go data-usage.go disk-cache-backend.go disk-cache-stats.go disk-cache-utils.go disk-cache.go dummy-handlers.go dynamic-timeouts.go encryption-v1.go endpoint-ellipses.go endpoint.go erasure-decode.go erasure-encode.go erasure-heal.go erasure-utils.go erasure.go etcd.go fallocate_linux.go fastwalk.go format-disk-cache.go format-fs.go format-meta.go format-xl.go fs-v1-helpers.go fs-v1-metadata.go fs-v1-multipart.go fs-v1-rwpool.go fs-v1.go gateway-common.go gateway-env.go gateway-interface.go gateway-main.go gateway-metrics.go gateway-startup-msg.go gateway-unsupported.go generic-handlers.go global-heal.go globals.go handler-utils.go hasher.go healthcheck-handler.go healthcheck-router.go http-stats.go http-tracer.go http-traffic-recorder.go httprange.go iam-etcd-store.go iam-object-store.go iam.go jwt.go lifecycle.go local-locker.go lock-rest-client.go lock-rest-server-common.go lock-rest-server.go main.go merge-walk-pool.go metrics-router.go metrics.go namespace-lock.go net.go notification.go obdinfo.go obdinfo_other.go object-api-common.go object-api-datatypes.go object-api-errors.go object-api-input-checks.go object-api-interface.go object-api-utils.go object-handlers-common.go object-handlers.go object-lock.go os-reliable.go peer-rest-client-target.go peer-rest-client.go peer-rest-common.go peer-rest-server.go policy.go posix-dirent_ino.go posix-dirent_namelen_linux.go posix-diskid-check.go posix-errors.go posix-list-dir_unix.go posix.go postpolicyform.go prepare-storage.go retry.go routers.go server-main.go server-rlimit.go server-startup-msg.go service.go setup-type.go signals.go signature-v2.go signature-v4-parser.go signature-v4-utils.go signature-v4.go storage-datatypes.go storage-errors.go storage-interface.go storage-rest-client.go storage-rest-common.go storage-rest-server.go streaming-signature-v4.go sts-datatypes.go sts-errors.go sts-handlers.go tree-walk-pool.go tree-walk.go typed-errors.go update-notifier.go update.go utils.go web-handler-context.go web-handlers.go web-router.go xl-sets.go xl-v1-bucket.go xl-v1-common.go xl-v1-errors.go xl-v1-healing-common.go xl-v1-healing.go xl-v1-list-objects-heal.go xl-v1-list-objects.go xl-v1-metadata.go xl-v1-multipart.go xl-v1-object.go xl-v1-utils.go xl-v1.go xl-zones.go

Constants

const (
    AdminUpdateUnexpectedFailure = "XMinioAdminUpdateUnexpectedFailure"
    AdminUpdateURLNotReachable   = "XMinioAdminUpdateURLNotReachable"
    AdminUpdateApplyFailure      = "XMinioAdminUpdateApplyFailure"
)

Admin API errors

const (
    GET    allowedMethod = http.MethodGet
    PUT    allowedMethod = http.MethodPut
    HEAD   allowedMethod = http.MethodHead
    POST   allowedMethod = http.MethodPost
    DELETE allowedMethod = http.MethodDelete
)

Define strings

const (
    // SSECustomerKeySize is the size of valid client provided encryption keys in bytes.
    // Currently AWS supports only AES256. So the SSE-C key size is fixed to 32 bytes.
    SSECustomerKeySize = 32

    // SSEIVSize is the size of the IV data
    SSEIVSize = 32 // 32 bytes

    // SSEDAREPackageBlockSize - SSE dare package block size.
    SSEDAREPackageBlockSize = 64 * 1024 // 64KiB bytes

    // SSEDAREPackageMetaSize - SSE dare package meta padding bytes.
    SSEDAREPackageMetaSize = 32 // 32 bytes

)
const (

    // GlobalMultipartExpiry - Expiry duration after which the multipart uploads are deemed stale.
    GlobalMultipartExpiry = time.Hour * 24 * 3 // 3 days.
    // GlobalMultipartCleanupInterval - Cleanup interval when the stale multipart cleanup is initiated.
    GlobalMultipartCleanupInterval = time.Hour * 24 // 24 hrs.

    // GlobalServiceExecutionInterval - Executes the Lifecycle events.
    GlobalServiceExecutionInterval = time.Hour * 24 // 24 hrs.

)
const (
    DefaultBitrotAlgorithm = HighwayHash256S
)

DefaultBitrotAlgorithm is the default algorithm used for bitrot protection.

const DefaultSkewTime = 15 * time.Minute

DefaultSkewTime - skew time is 15 minutes between minio peers.

const (

    // Disabled means the lifecycle rule is inactive
    Disabled = "Disabled"
)
const (
    EnvPrometheusAuthType = "MINIO_PROMETHEUS_AUTH_TYPE"
)

Standard env prometheus auth type

const GatewayMinioSysTmp = "minio.sys.tmp/"

GatewayMinioSysTmp prefix is used in Azure/GCS gateway for save metadata sent by Initialize Multipart Upload API.

const MaxJitter = 1.0

MaxJitter will randomize over the full exponential backoff time

const NoJitter = 0.0

NoJitter disables the use of jitter for randomizing the exponential backoff time

const ReservedMetadataPrefix = "X-Minio-Internal-"

ReservedMetadataPrefix is the prefix of a metadata key which is reserved and for internal use only.

const (

    // SSECacheEncrypted is the metadata key indicating that the object
    // is a cache entry encrypted with cache KMS master key in globalCacheKMS.
    SSECacheEncrypted = "X-Minio-Internal-Encrypted-Cache"
)
const SlashSeparator = "/"

SlashSeparator - slash separator.

Variables

var (
    // GOPATH - GOPATH value at the time of build.
    GOPATH = ""

    // GOROOT - GOROOT value at the time of build.
    GOROOT = ""

    // Version - version time.RFC3339.
    Version = goGetTag
    // ReleaseTag - release tag in TAG.%Y-%m-%dT%H-%M-%SZ.
    ReleaseTag = goGetTag
    // CommitID - latest commit id.
    CommitID = goGetTag
    // ShortCommitID - first 12 characters from CommitID.
    ShortCommitID = CommitID[:12]
)

DO NOT EDIT THIS FILE DIRECTLY. These are build-time constants set through ‘buildscripts/gen-ldflags.go’.

var (
    // CanonicalizeETag provides canonicalizeETag function alias.
    CanonicalizeETag = canonicalizeETag

    // MustGetUUID function alias.
    MustGetUUID = mustGetUUID

    // CleanMetadataKeys provides cleanMetadataKeys function alias.
    CleanMetadataKeys = cleanMetadataKeys

    // PathJoin function alias.
    PathJoin = pathJoin

    // ListObjects function alias.
    ListObjects = listObjects

    // FilterMatchingPrefix function alias.
    FilterMatchingPrefix = filterMatchingPrefix

    // IsStringEqual is string equal.
    IsStringEqual = isStringEqual
)
var (

    // GlobalKMS initialized KMS configuration
    GlobalKMS crypto.KMS

    // GlobalGatewaySSE sse options
    GlobalGatewaySSE gatewaySSE
)
var GlobalContext context.Context

GlobalContext context that is canceled when server is requested to shut down.

var GlobalFlags = []cli.Flag{
    cli.StringFlag{
        Name:  "config-dir, C",
        Value: defaultConfigDir.Get(),
        Usage: "[DEPRECATED] path to legacy configuration directory",
    },
    cli.StringFlag{
        Name:  "certs-dir, S",
        Value: defaultCertsDir.Get(),
        Usage: "path to certs directory",
    },
    cli.BoolFlag{
        Name:  "quiet",
        Usage: "disable startup information",
    },
    cli.BoolFlag{
        Name:  "anonymous",
        Usage: "hide sensitive information from logging",
    },
    cli.BoolFlag{
        Name:  "json",
        Usage: "output server logs and startup information in json format",
    },
    cli.BoolFlag{
        Name:  "compat",
        Usage: "enable strict S3 compatibility by turning off certain performance optimizations",
    },
}

GlobalFlags - global flags for minio.

var GlobalServiceDoneCh <-chan struct{}

GlobalServiceDoneCh - Global service done channel.

var ObjectsHistogramIntervals = []objectHistogramInterval{
    {"LESS_THAN_1024_B", -1, 1024 - 1},
    {"BETWEEN_1024_B_AND_1_MB", 1024, 1024*1024 - 1},
    {"BETWEEN_1_MB_AND_10_MB", 1024 * 1024, 1024*1024*10 - 1},
    {"BETWEEN_10_MB_AND_64_MB", 1024 * 1024 * 10, 1024*1024*64 - 1},
    {"BETWEEN_64_MB_AND_128_MB", 1024 * 1024 * 64, 1024*1024*128 - 1},
    {"BETWEEN_128_MB_AND_512_MB", 1024 * 1024 * 128, 1024*1024*512 - 1},
    {"GREATER_THAN_512_MB", 1024 * 1024 * 512, math.MaxInt64},
}

ObjectsHistogramIntervals is the list of all intervals of object sizes to be included in objects histogram.

var ServerFlags = []cli.Flag{
    cli.StringFlag{
        Name:  "address",
        Value: ":" + globalMinioDefaultPort,
        Usage: "bind to a specific ADDRESS:PORT, ADDRESS can be an IP or hostname",
    },
}

ServerFlags - server command specific flags

func AnonErrToObjectErr Uses

func AnonErrToObjectErr(statusCode int, params ...string) error

AnonErrToObjectErr - converts standard http codes into meaningful object layer errors.

func AuthMiddleware Uses

func AuthMiddleware(h http.Handler) http.Handler

AuthMiddleware checks if the bearer token is valid and authorized.

func BucketAccessPolicyToPolicy Uses

func BucketAccessPolicyToPolicy(policyInfo *miniogopolicy.BucketAccessPolicy) (*policy.Policy, error)

BucketAccessPolicyToPolicy - converts minio-go/policy.BucketAccessPolicy to policy.Policy.

func CheckLocalServerAddr Uses

func CheckLocalServerAddr(serverAddr string) error

CheckLocalServerAddr - checks if serverAddr is valid and local host.

func CleanMinioInternalMetadataKeys Uses

func CleanMinioInternalMetadataKeys(metadata map[string]string) map[string]string

CleanMinioInternalMetadataKeys removes X-Amz-Meta- prefix from minio internal encryption metadata that was sent by minio gateway

func ComputeCompleteMultipartMD5 Uses

func ComputeCompleteMultipartMD5(parts []CompletePart) string

ComputeCompleteMultipartMD5 calculates MD5 ETag for complete multipart responses

func CreateEndpoints Uses

func CreateEndpoints(serverAddr string, foundLocal bool, args ...[]string) (Endpoints, SetupType, error)

CreateEndpoints - validates and creates new endpoints for given args.

func DecryptBlocksRequestR Uses

func DecryptBlocksRequestR(inputReader io.Reader, h http.Header, offset,
    length int64, seqNumber uint32, partStart int, oi ObjectInfo, copySource bool) (
    io.Reader, error)

DecryptBlocksRequestR - same as DecryptBlocksRequest but with a reader

func DecryptCopyRequest Uses

func DecryptCopyRequest(client io.Writer, r *http.Request, bucket, object string, metadata map[string]string) (io.WriteCloser, error)

DecryptCopyRequest decrypts the object with the client provided key. It also removes the client-side-encryption metadata from the object and sets the correct headers.

func DecryptCopyRequestR Uses

func DecryptCopyRequestR(client io.Reader, h http.Header, bucket, object string, seqNumber uint32, metadata map[string]string) (io.Reader, error)

DecryptCopyRequestR - same as DecryptCopyRequest, but with a Reader

func DecryptObjectInfo Uses

func DecryptObjectInfo(info *ObjectInfo, headers http.Header) (encrypted bool, err error)

DecryptObjectInfo tries to decrypt the provided object if it is encrypted. It fails if the object is encrypted and the HTTP headers don't contain SSE-C headers or the object is not encrypted but SSE-C headers are provided. (AWS behavior) DecryptObjectInfo returns 'ErrNone' if the object is not encrypted or the decryption succeeded.

DecryptObjectInfo also returns whether the object is encrypted or not.

func DecryptRequest Uses

func DecryptRequest(client io.Writer, r *http.Request, bucket, object string, metadata map[string]string) (io.WriteCloser, error)

DecryptRequest decrypts the object with client provided key for SSE-C and SSE-S3. It also removes the encryption metadata from the object and sets the correct headers.

func DecryptRequestWithSequenceNumber Uses

func DecryptRequestWithSequenceNumber(client io.Writer, r *http.Request, bucket, object string, seqNumber uint32, metadata map[string]string) (io.WriteCloser, error)

DecryptRequestWithSequenceNumber decrypts the object with the client provided key. It also removes the client-side-encryption metadata from the object and sets the correct headers.

func DecryptRequestWithSequenceNumberR Uses

func DecryptRequestWithSequenceNumberR(client io.Reader, h http.Header, bucket, object string, seqNumber uint32, metadata map[string]string) (io.Reader, error)

DecryptRequestWithSequenceNumberR - same as DecryptRequestWithSequenceNumber but with a reader

func DownloadReleaseData Uses

func DownloadReleaseData(timeout time.Duration, mode string) (data string, err error)

DownloadReleaseData - downloads release data from minio official server.

func EncryptRequest Uses

func EncryptRequest(content io.Reader, r *http.Request, bucket, object string, metadata map[string]string) (reader io.Reader, objEncKey []byte, err error)

EncryptRequest takes the client provided content and encrypts the data with the client provided key. It also marks the object as client-side-encrypted and sets the correct headers.

func ErrorRespToObjectError Uses

func ErrorRespToObjectError(err error, params ...string) error

ErrorRespToObjectError converts MinIO errors to minio object layer errors.

func Fallocate Uses

func Fallocate(fd int, offset int64, len int64) error

Fallocate uses the linux Fallocate syscall, which helps us to be sure that subsequent writes on a file just created will not fail, in addition, file allocation will be contigous on the disk

func FromMinioClientMetadata Uses

func FromMinioClientMetadata(metadata map[string][]string) map[string]string

FromMinioClientMetadata converts minio metadata to map[string]string

func GenETag Uses

func GenETag() string

GenETag - generate UUID based ETag

func GetAllSets Uses

func GetAllSets(customSetDriveCount uint64, args ...string) ([][]string, error)

GetAllSets - parses all ellipses input arguments, expands them into corresponding list of endpoints chunked evenly in accordance with a specific set size. For example: {1...64} is divided into 4 sets each of size 16. This applies to even distributed setup syntax as well.

func GetCurrentReleaseTime Uses

func GetCurrentReleaseTime() (releaseTime time.Time, err error)

GetCurrentReleaseTime - returns this process's release time. If it is official minio version, parsed version is returned else minio binary's mod time is returned.

func GetLocalPeer Uses

func GetLocalPeer(endpointZones EndpointZones) (localPeer string)

GetLocalPeer - returns local peer value, returns globalMinioAddr for FS and Erasure mode. In case of distributed server return the first element from the set of peers which indicate that they are local. There is always one entry that is local even with repeated server endpoints.

func GetRemotePeers Uses

func GetRemotePeers(endpointZones EndpointZones) []string

GetRemotePeers - get hosts information other than this minio service.

func GetVersion Uses

func GetVersion(configFile string) (string, error)

GetVersion gets config version from backend

func HasPrefix Uses

func HasPrefix(s string, prefix string) bool

HasPrefix - Prefix matcher string matches prefix in a platform specific way. For example on windows since its case insensitive we are supposed to do case insensitive checks.

func HasSuffix Uses

func HasSuffix(s string, suffix string) bool

HasSuffix - Suffix matcher string matches suffix in a platform specific way. For example on windows since its case insensitive we are supposed to do case insensitive checks.

func IsBOSH Uses

func IsBOSH() bool

IsBOSH returns true if minio is deployed from a bosh package

func IsBackendOnline Uses

func IsBackendOnline(ctx context.Context, clnt *http.Client, urlStr string) bool

IsBackendOnline - verifies if the backend is reachable by performing a GET request on the URL. returns 'true' if backend is reachable.

func IsDCOS Uses

func IsDCOS() bool

IsDCOS returns true if minio is running in DCOS.

func IsDocker Uses

func IsDocker() bool

IsDocker - returns if the environment minio is running in docker or not. The check is a simple file existence check.

https://github.com/moby/moby/blob/master/daemon/initlayer/setup_unix.go#L25

"/.dockerenv":      "file",

func IsErr Uses

func IsErr(err error, errs ...error) bool

IsErr returns whether given error is exact error.

func IsErrIgnored Uses

func IsErrIgnored(err error, ignoredErrs ...error) bool

IsErrIgnored returns whether given error is ignored or not.

func IsKubernetes Uses

func IsKubernetes() bool

IsKubernetes returns true if minio is running in kubernetes.

func IsKubernetesReplicaSet Uses

func IsKubernetesReplicaSet() bool

IsKubernetesReplicaSet returns true if minio is running in kubernetes replica set.

func IsServerResolvable Uses

func IsServerResolvable(endpoint Endpoint) error

IsServerResolvable - checks if the endpoint is resolvable by sending a naked HTTP request with liveness checks.

func IsSourceBuild Uses

func IsSourceBuild() bool

IsSourceBuild - returns if this binary is a non-official build from source code.

func IsValidBucketName Uses

func IsValidBucketName(bucket string) bool

IsValidBucketName verifies that a bucket name is in accordance with Amazon's requirements (i.e. DNS naming conventions). It must be 3-63 characters long, and it must be a sequence of one or more labels separated by periods. Each label can contain lowercase ascii letters, decimal digits and hyphens, but must not begin or end with a hyphen. See: http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html

func IsValidObjectName Uses

func IsValidObjectName(object string) bool

IsValidObjectName verifies an object name in accordance with Amazon's requirements. It cannot exceed 1024 characters and must be a valid UTF8 string.

See: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html

You should avoid the following characters in a key name because of significant special handling for consistency across all applications.

Rejects strings with following characters.

- Backslash ("\")

additionally minio does not support object names with trailing SlashSeparator.

func IsValidObjectPrefix Uses

func IsValidObjectPrefix(object string) bool

IsValidObjectPrefix verifies whether the prefix is a valid object name. Its valid to have a empty prefix.

func LivenessCheckHandler Uses

func LivenessCheckHandler(w http.ResponseWriter, r *http.Request)

LivenessCheckHandler -- checks if server can reach its disks internally. If not, server is considered to have failed and needs to be restarted. Liveness probes are used to detect situations where application (minio) has gone into a state where it can not recover except by being restarted.

func Load Uses

func Load(configFile string, data interface{}) (quick.Config, error)

Load config from backend

func Main Uses

func Main(args []string)

Main main for minio server.

func NewGatewayHTTPTransport Uses

func NewGatewayHTTPTransport() *http.Transport

NewGatewayHTTPTransport returns a new http configuration used while communicating with the cloud backends. This sets the value for MaxIdleConnsPerHost from 2 (go default) to 256.

func ParseGatewayEndpoint Uses

func ParseGatewayEndpoint(arg string) (endPoint string, secure bool, err error)

ParseGatewayEndpoint - Return endpoint.

func ParseSSECopyCustomerRequest Uses

func ParseSSECopyCustomerRequest(h http.Header, metadata map[string]string) (key []byte, err error)

ParseSSECopyCustomerRequest parses the SSE-C header fields of the provided request. It returns the client provided key on success.

func ParseSSECustomerHeader Uses

func ParseSSECustomerHeader(header http.Header) (key []byte, err error)

ParseSSECustomerHeader parses the SSE-C header fields and returns the client provided key on success.

func ParseSSECustomerRequest Uses

func ParseSSECustomerRequest(r *http.Request) (key []byte, err error)

ParseSSECustomerRequest parses the SSE-C header fields of the provided request. It returns the client provided key on success.

func PolicyToBucketAccessPolicy Uses

func PolicyToBucketAccessPolicy(bucketPolicy *policy.Policy) (*miniogopolicy.BucketAccessPolicy, error)

PolicyToBucketAccessPolicy - converts policy.Policy to minio-go/policy.BucketAccessPolicy.

func ReadinessCheckHandler Uses

func ReadinessCheckHandler(w http.ResponseWriter, r *http.Request)

ReadinessCheckHandler -- Checks if the quorum number of disks are available. For FS - Checks if the backend disk is available For Zones - Checks if all the zones have enough read quorum

func RegisterGatewayCommand Uses

func RegisterGatewayCommand(cmd cli.Command) error

RegisterGatewayCommand registers a new command for gateway.

func Save Uses

func Save(configFile string, data interface{}) error

Save config file to corresponding backend

func StartGateway Uses

func StartGateway(ctx *cli.Context, gw Gateway)

StartGateway - handler for 'minio gateway <name>'.

func StorageReader Uses

func StorageReader(storage StorageAPI, volume, path string, offset int64) io.Reader

StorageReader returns a new io.Reader which reads data to the file at the given disk, volume, path and offset.

func StorageWriter Uses

func StorageWriter(storage StorageAPI, volume, path string) io.Writer

StorageWriter returns a new io.Writer which appends data to the file at the given disk, volume and path.

func ToMinioClientCompletePart Uses

func ToMinioClientCompletePart(part CompletePart) minio.CompletePart

ToMinioClientCompletePart converts CompletePart to minio CompletePart

func ToMinioClientCompleteParts Uses

func ToMinioClientCompleteParts(parts []CompletePart) []minio.CompletePart

ToMinioClientCompleteParts converts []CompletePart to minio []CompletePart

func ToMinioClientMetadata Uses

func ToMinioClientMetadata(metadata map[string]string) map[string]string

ToMinioClientMetadata converts metadata to map[string]string

func ToMinioClientObjectInfoMetadata Uses

func ToMinioClientObjectInfoMetadata(metadata map[string]string) map[string][]string

ToMinioClientObjectInfoMetadata convertes metadata to map[string][]string

func ToS3ETag Uses

func ToS3ETag(etag string) string

ToS3ETag - return checksum to ETag

func Trace Uses

func Trace(f http.HandlerFunc, logBody bool, w http.ResponseWriter, r *http.Request) trace.Info

Trace gets trace of http request

func UTCNow Uses

func UTCNow() time.Time

UTCNow - returns current UTC time.

func ValidateGatewayArguments Uses

func ValidateGatewayArguments(serverAddr, endpointAddr string) error

ValidateGatewayArguments - Validate gateway arguments.

type APIError Uses

type APIError struct {
    Code           string
    Description    string
    HTTPStatusCode int
}

APIError structure

type APIErrorCode Uses

type APIErrorCode int

APIErrorCode type of error status.

const (
    ErrNone APIErrorCode = iota
    ErrAccessDenied
    ErrBadDigest
    ErrEntityTooSmall
    ErrEntityTooLarge
    ErrPolicyTooLarge
    ErrIncompleteBody
    ErrInternalError
    ErrInvalidAccessKeyID
    ErrInvalidBucketName
    ErrInvalidDigest
    ErrInvalidRange
    ErrInvalidCopyPartRange
    ErrInvalidCopyPartRangeSource
    ErrInvalidMaxKeys
    ErrInvalidEncodingMethod
    ErrInvalidMaxUploads
    ErrInvalidMaxParts
    ErrInvalidPartNumberMarker
    ErrInvalidRequestBody
    ErrInvalidCopySource
    ErrInvalidMetadataDirective
    ErrInvalidCopyDest
    ErrInvalidPolicyDocument
    ErrInvalidObjectState
    ErrMalformedXML
    ErrMissingContentLength
    ErrMissingContentMD5
    ErrMissingRequestBodyError
    ErrMissingSecurityHeader
    ErrNoSuchBucket
    ErrNoSuchBucketPolicy
    ErrNoSuchBucketLifecycle
    ErrNoSuchLifecycleConfiguration
    ErrNoSuchBucketSSEConfig
    ErrNoSuchKey
    ErrNoSuchUpload
    ErrNoSuchVersion
    ErrNotImplemented
    ErrPreconditionFailed
    ErrRequestTimeTooSkewed
    ErrSignatureDoesNotMatch
    ErrMethodNotAllowed
    ErrInvalidPart
    ErrInvalidPartOrder
    ErrAuthorizationHeaderMalformed
    ErrMalformedPOSTRequest
    ErrPOSTFileRequired
    ErrSignatureVersionNotSupported
    ErrBucketNotEmpty
    ErrAllAccessDisabled
    ErrMalformedPolicy
    ErrMissingFields
    ErrMissingCredTag
    ErrCredMalformed
    ErrInvalidRegion
    ErrInvalidServiceS3
    ErrInvalidServiceSTS
    ErrInvalidRequestVersion
    ErrMissingSignTag
    ErrMissingSignHeadersTag
    ErrMalformedDate
    ErrMalformedPresignedDate
    ErrMalformedCredentialDate
    ErrMalformedCredentialRegion
    ErrMalformedExpires
    ErrNegativeExpires
    ErrAuthHeaderEmpty
    ErrExpiredPresignRequest
    ErrRequestNotReadyYet
    ErrUnsignedHeaders
    ErrMissingDateHeader
    ErrInvalidQuerySignatureAlgo
    ErrInvalidQueryParams
    ErrBucketAlreadyOwnedByYou
    ErrInvalidDuration
    ErrBucketAlreadyExists
    ErrMetadataTooLarge
    ErrUnsupportedMetadata
    ErrMaximumExpires
    ErrSlowDown
    ErrInvalidPrefixMarker
    ErrBadRequest
    ErrKeyTooLongError
    ErrInvalidBucketObjectLockConfiguration
    ErrObjectLockConfigurationNotAllowed
    ErrNoSuchObjectLockConfiguration
    ErrObjectLocked
    ErrInvalidRetentionDate
    ErrPastObjectLockRetainDate
    ErrUnknownWORMModeDirective
    ErrObjectLockInvalidHeaders
    ErrInvalidTagDirective

    // SSE-S3 related API errors
    ErrInvalidEncryptionMethod

    // Server-Side-Encryption (with Customer provided key) related API errors.
    ErrInsecureSSECustomerRequest
    ErrSSEMultipartEncrypted
    ErrSSEEncryptedObject
    ErrInvalidEncryptionParameters
    ErrInvalidSSECustomerAlgorithm
    ErrInvalidSSECustomerKey
    ErrMissingSSECustomerKey
    ErrMissingSSECustomerKeyMD5
    ErrSSECustomerKeyMD5Mismatch
    ErrInvalidSSECustomerParameters
    ErrIncompatibleEncryptionMethod
    ErrKMSNotConfigured
    ErrKMSAuthFailure

    ErrNoAccessKey
    ErrInvalidToken

    // Bucket notification related errors.
    ErrEventNotification
    ErrARNNotification
    ErrRegionNotification
    ErrOverlappingFilterNotification
    ErrFilterNameInvalid
    ErrFilterNamePrefix
    ErrFilterNameSuffix
    ErrFilterValueInvalid
    ErrOverlappingConfigs
    ErrUnsupportedNotification

    // S3 extended errors.
    ErrContentSHA256Mismatch

    // MinIO extended errors.
    ErrReadQuorum
    ErrWriteQuorum
    ErrParentIsObject
    ErrStorageFull
    ErrRequestBodyParse
    ErrObjectExistsAsDirectory
    ErrInvalidObjectName
    ErrInvalidObjectNamePrefixSlash
    ErrInvalidResourceName
    ErrServerNotInitialized
    ErrOperationTimedOut
    ErrOperationMaxedOut
    ErrInvalidRequest
    // MinIO storage class error codes
    ErrInvalidStorageClass
    ErrBackendDown

    ErrMalformedJSON
    ErrAdminNoSuchUser
    ErrAdminNoSuchGroup
    ErrAdminGroupNotEmpty
    ErrAdminNoSuchPolicy
    ErrAdminInvalidArgument
    ErrAdminInvalidAccessKey
    ErrAdminInvalidSecretKey
    ErrAdminConfigNoQuorum
    ErrAdminConfigTooLarge
    ErrAdminConfigBadJSON
    ErrAdminConfigDuplicateKeys
    ErrAdminCredentialsMismatch
    ErrInsecureClientRequest
    ErrObjectTampered

    ErrHealNotImplemented
    ErrHealNoSuchProcess
    ErrHealInvalidClientToken
    ErrHealMissingBucket
    ErrHealAlreadyRunning
    ErrHealOverlappingPaths
    ErrIncorrectContinuationToken

    // S3 Select Errors
    ErrEmptyRequestBody
    ErrUnsupportedFunction
    ErrInvalidExpressionType
    ErrBusy
    ErrUnauthorizedAccess
    ErrExpressionTooLong
    ErrIllegalSQLFunctionArgument
    ErrInvalidKeyPath
    ErrInvalidCompressionFormat
    ErrInvalidFileHeaderInfo
    ErrInvalidJSONType
    ErrInvalidQuoteFields
    ErrInvalidRequestParameter
    ErrInvalidDataType
    ErrInvalidTextEncoding
    ErrInvalidDataSource
    ErrInvalidTableAlias
    ErrMissingRequiredParameter
    ErrObjectSerializationConflict
    ErrUnsupportedSQLOperation
    ErrUnsupportedSQLStructure
    ErrUnsupportedSyntax
    ErrUnsupportedRangeHeader
    ErrLexerInvalidChar
    ErrLexerInvalidOperator
    ErrLexerInvalidLiteral
    ErrLexerInvalidIONLiteral
    ErrParseExpectedDatePart
    ErrParseExpectedKeyword
    ErrParseExpectedTokenType
    ErrParseExpected2TokenTypes
    ErrParseExpectedNumber
    ErrParseExpectedRightParenBuiltinFunctionCall
    ErrParseExpectedTypeName
    ErrParseExpectedWhenClause
    ErrParseUnsupportedToken
    ErrParseUnsupportedLiteralsGroupBy
    ErrParseExpectedMember
    ErrParseUnsupportedSelect
    ErrParseUnsupportedCase
    ErrParseUnsupportedCaseClause
    ErrParseUnsupportedAlias
    ErrParseUnsupportedSyntax
    ErrParseUnknownOperator
    ErrParseMissingIdentAfterAt
    ErrParseUnexpectedOperator
    ErrParseUnexpectedTerm
    ErrParseUnexpectedToken
    ErrParseUnexpectedKeyword
    ErrParseExpectedExpression
    ErrParseExpectedLeftParenAfterCast
    ErrParseExpectedLeftParenValueConstructor
    ErrParseExpectedLeftParenBuiltinFunctionCall
    ErrParseExpectedArgumentDelimiter
    ErrParseCastArity
    ErrParseInvalidTypeParam
    ErrParseEmptySelect
    ErrParseSelectMissingFrom
    ErrParseExpectedIdentForGroupName
    ErrParseExpectedIdentForAlias
    ErrParseUnsupportedCallWithStar
    ErrParseNonUnaryAgregateFunctionCall
    ErrParseMalformedJoin
    ErrParseExpectedIdentForAt
    ErrParseAsteriskIsNotAloneInSelectList
    ErrParseCannotMixSqbAndWildcardInSelectList
    ErrParseInvalidContextForWildcardInSelectList
    ErrIncorrectSQLFunctionArgumentType
    ErrValueParseFailure
    ErrEvaluatorInvalidArguments
    ErrIntegerOverflow
    ErrLikeInvalidInputs
    ErrCastFailed
    ErrInvalidCast
    ErrEvaluatorInvalidTimestampFormatPattern
    ErrEvaluatorInvalidTimestampFormatPatternSymbolForParsing
    ErrEvaluatorTimestampFormatPatternDuplicateFields
    ErrEvaluatorTimestampFormatPatternHourClockAmPmMismatch
    ErrEvaluatorUnterminatedTimestampFormatPatternToken
    ErrEvaluatorInvalidTimestampFormatPatternToken
    ErrEvaluatorInvalidTimestampFormatPatternSymbol
    ErrEvaluatorBindingDoesNotExist
    ErrMissingHeaders
    ErrInvalidColumnIndex

    ErrAdminConfigNotificationTargetsFailed
    ErrAdminProfilerNotEnabled
    ErrInvalidDecompressedSize
    ErrAddUserInvalidArgument
    ErrAddServiceAccountInvalidArgument
    ErrPostPolicyConditionInvalidFormat
)

Error codes, non exhaustive list - http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html

func DecryptCopyObjectInfo Uses

func DecryptCopyObjectInfo(info *ObjectInfo, headers http.Header) (errCode APIErrorCode, encrypted bool)

DecryptCopyObjectInfo tries to decrypt the provided object if it is encrypted. It fails if the object is encrypted and the HTTP headers don't contain SSE-C headers or the object is not encrypted but SSE-C headers are provided. (AWS behavior) DecryptObjectInfo returns 'ErrNone' if the object is not encrypted or the decryption succeeded.

DecryptCopyObjectInfo also returns whether the object is encrypted or not.

type APIErrorResponse Uses

type APIErrorResponse struct {
    XMLName    xml.Name `xml:"Error" json:"-"`
    Code       string
    Message    string
    Key        string `xml:"Key,omitempty" json:"Key,omitempty"`
    BucketName string `xml:"BucketName,omitempty" json:"BucketName,omitempty"`
    Resource   string
    Region     string `xml:"Region,omitempty" json:"Region,omitempty"`
    RequestID  string `xml:"RequestId" json:"RequestId"`
    HostID     string `xml:"HostId" json:"HostId"`
}

APIErrorResponse - error response format

type AdminError Uses

type AdminError struct {
    Code       string
    Message    string
    StatusCode int
}

AdminError - is a generic error for all admin APIs.

func (AdminError) Error Uses

func (ae AdminError) Error() string

type AllAccessDisabled Uses

type AllAccessDisabled GenericError

AllAccessDisabled All access to this object has been disabled

func (AllAccessDisabled) Error Uses

func (e AllAccessDisabled) Error() string

Error returns string an error formatted as the given text.

type AssumeRoleResponse Uses

type AssumeRoleResponse struct {
    XMLName xml.Name `xml:"https://sts.amazonaws.com/doc/2011-06-15/ AssumeRoleResponse" json:"-"`

    Result           AssumeRoleResult `xml:"AssumeRoleResult"`
    ResponseMetadata struct {
        RequestID string `xml:"RequestId,omitempty"`
    }   `xml:"ResponseMetadata,omitempty"`
}

AssumeRoleResponse contains the result of successful AssumeRole request.

type AssumeRoleResult Uses

type AssumeRoleResult struct {
    // The identifiers for the temporary security credentials that the operation
    // returns.
    AssumedRoleUser AssumedRoleUser `xml:",omitempty"`

    // The temporary security credentials, which include an access key ID, a secret
    // access key, and a security (or session) token.
    //
    // Note: The size of the security token that STS APIs return is not fixed. We
    // strongly recommend that you make no assumptions about the maximum size. As
    // of this writing, the typical size is less than 4096 bytes, but that can vary.
    // Also, future updates to AWS might require larger sizes.
    Credentials auth.Credentials `xml:",omitempty"`

    // A percentage value that indicates the size of the policy in packed form.
    // The service rejects any policy with a packed size greater than 100 percent,
    // which means the policy exceeded the allowed space.
    PackedPolicySize int `xml:",omitempty"`
}

AssumeRoleResult - Contains the response to a successful AssumeRole request, including temporary credentials that can be used to make MinIO API requests.

type AssumeRoleWithClientGrantsResponse Uses

type AssumeRoleWithClientGrantsResponse struct {
    XMLName          xml.Name           `xml:"https://sts.amazonaws.com/doc/2011-06-15/ AssumeRoleWithClientGrantsResponse" json:"-"`
    Result           ClientGrantsResult `xml:"AssumeRoleWithClientGrantsResult"`
    ResponseMetadata struct {
        RequestID string `xml:"RequestId,omitempty"`
    }   `xml:"ResponseMetadata,omitempty"`
}

AssumeRoleWithClientGrantsResponse contains the result of successful AssumeRoleWithClientGrants request.

type AssumeRoleWithLDAPResponse Uses

type AssumeRoleWithLDAPResponse struct {
    XMLName          xml.Name           `xml:"https://sts.amazonaws.com/doc/2011-06-15/ AssumeRoleWithLDAPIdentityResponse" json:"-"`
    Result           LDAPIdentityResult `xml:"AssumeRoleWithLDAPIdentityResult"`
    ResponseMetadata struct {
        RequestID string `xml:"RequestId,omitempty"`
    }   `xml:"ResponseMetadata,omitempty"`
}

AssumeRoleWithLDAPResponse contains the result of successful AssumeRoleWithLDAPIdentity request

type AssumeRoleWithWebIdentityResponse Uses

type AssumeRoleWithWebIdentityResponse struct {
    XMLName          xml.Name          `xml:"https://sts.amazonaws.com/doc/2011-06-15/ AssumeRoleWithWebIdentityResponse" json:"-"`
    Result           WebIdentityResult `xml:"AssumeRoleWithWebIdentityResult"`
    ResponseMetadata struct {
        RequestID string `xml:"RequestId,omitempty"`
    }   `xml:"ResponseMetadata,omitempty"`
}

AssumeRoleWithWebIdentityResponse contains the result of successful AssumeRoleWithWebIdentity request.

type AssumedRoleUser Uses

type AssumedRoleUser struct {
    // The ARN of the temporary security credentials that are returned from the
    // AssumeRole action. For more information about ARNs and how to use them in
    // policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
    // in Using IAM.
    //
    // Arn is a required field
    Arn string

    // A unique identifier that contains the role ID and the role session name of
    // the role that is being assumed. The role ID is generated by AWS when the
    // role is created.
    //
    // AssumedRoleId is a required field
    AssumedRoleID string `xml:"AssumeRoleId"`
}

AssumedRoleUser - The identifiers for the temporary security credentials that the operation returns. Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumedRoleUser

type BackendDown Uses

type BackendDown struct{}

BackendDown is returned for network errors or if the gateway's backend is down.

func (BackendDown) Error Uses

func (e BackendDown) Error() string

type BackendType Uses

type BackendType int

BackendType - represents different backend types.

const (
    Unknown BackendType = iota
    // Filesystem backend.
    BackendFS
    // Multi disk BackendErasure (single, distributed) backend.
    BackendErasure
    // Gateway backend.
    BackendGateway
)

Enum for different backend types.

type BitrotAlgorithm Uses

type BitrotAlgorithm uint

BitrotAlgorithm specifies a algorithm used for bitrot protection.

const (
    // SHA256 represents the SHA-256 hash function
    SHA256 BitrotAlgorithm = 1 + iota
    // HighwayHash256 represents the HighwayHash-256 hash function
    HighwayHash256
    // HighwayHash256S represents the Streaming HighwayHash-256 hash function
    HighwayHash256S
    // BLAKE2b512 represents the BLAKE2b-512 hash function
    BLAKE2b512
)

func BitrotAlgorithmFromString Uses

func BitrotAlgorithmFromString(s string) (a BitrotAlgorithm)

BitrotAlgorithmFromString returns a bitrot algorithm from the given string representation. It returns 0 if the string representation does not match any supported algorithm. The zero value of a bitrot algorithm is never supported.

func (BitrotAlgorithm) Available Uses

func (a BitrotAlgorithm) Available() bool

Available reports whether the given algorithm is available.

func (BitrotAlgorithm) New Uses

func (a BitrotAlgorithm) New() hash.Hash

New returns a new hash.Hash calculating the given bitrot algorithm.

func (BitrotAlgorithm) String Uses

func (a BitrotAlgorithm) String() string

String returns the string identifier for a given bitrot algorithm. If the algorithm is not supported String panics.

type BitrotVerifier Uses

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

BitrotVerifier can be used to verify protected data.

func NewBitrotVerifier Uses

func NewBitrotVerifier(algorithm BitrotAlgorithm, checksum []byte) *BitrotVerifier

NewBitrotVerifier returns a new BitrotVerifier implementing the given algorithm.

type Bucket Uses

type Bucket struct {
    Name         string
    CreationDate string // time string of format "2006-01-02T15:04:05.000Z"
}

Bucket container for bucket metadata

type BucketAccessPolicy Uses

type BucketAccessPolicy struct {
    Bucket string                     `json:"bucket"`
    Prefix string                     `json:"prefix"`
    Policy miniogopolicy.BucketPolicy `json:"policy"`
}

BucketAccessPolicy - Collection of canned bucket policy at a given prefix.

type BucketAlreadyExists Uses

type BucketAlreadyExists GenericError

BucketAlreadyExists the requested bucket name is not available.

func (BucketAlreadyExists) Error Uses

func (e BucketAlreadyExists) Error() string

type BucketAlreadyOwnedByYou Uses

type BucketAlreadyOwnedByYou GenericError

BucketAlreadyOwnedByYou already owned by you.

func (BucketAlreadyOwnedByYou) Error Uses

func (e BucketAlreadyOwnedByYou) Error() string

type BucketExists Uses

type BucketExists GenericError

BucketExists bucket exists.

func (BucketExists) Error Uses

func (e BucketExists) Error() string

type BucketInfo Uses

type BucketInfo struct {
    // Name of the bucket.
    Name string

    // Date and time when the bucket was created.
    Created time.Time
}

BucketInfo - represents bucket metadata.

type BucketLifecycleNotFound Uses

type BucketLifecycleNotFound GenericError

BucketLifecycleNotFound - no bucket lifecycle found.

func (BucketLifecycleNotFound) Error Uses

func (e BucketLifecycleNotFound) Error() string

type BucketNameInvalid Uses

type BucketNameInvalid GenericError

BucketNameInvalid - bucketname provided is invalid.

func (BucketNameInvalid) Error Uses

func (e BucketNameInvalid) Error() string

Error returns string an error formatted as the given text.

type BucketNotEmpty Uses

type BucketNotEmpty GenericError

BucketNotEmpty bucket is not empty.

func (BucketNotEmpty) Error Uses

func (e BucketNotEmpty) Error() string

type BucketNotFound Uses

type BucketNotFound GenericError

BucketNotFound bucket does not exist.

func (BucketNotFound) Error Uses

func (e BucketNotFound) Error() string

type BucketPolicyNotFound Uses

type BucketPolicyNotFound GenericError

BucketPolicyNotFound - no bucket policy found.

func (BucketPolicyNotFound) Error Uses

func (e BucketPolicyNotFound) Error() string

type BucketSSEConfigNotFound Uses

type BucketSSEConfigNotFound GenericError

BucketSSEConfigNotFound - no bucket encryption config found

func (BucketSSEConfigNotFound) Error Uses

func (e BucketSSEConfigNotFound) Error() string

type BucketSSEConfigSys Uses

type BucketSSEConfigSys struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

BucketSSEConfigSys - in-memory cache of bucket encryption config

func NewBucketSSEConfigSys Uses

func NewBucketSSEConfigSys() *BucketSSEConfigSys

NewBucketSSEConfigSys - Creates an empty in-memory bucket encryption configuration cache

func (*BucketSSEConfigSys) Get Uses

func (sys *BucketSSEConfigSys) Get(bucket string) (config bucketsse.BucketSSEConfig, ok bool)

Get - gets bucket encryption config for the given bucket.

func (*BucketSSEConfigSys) Init Uses

func (sys *BucketSSEConfigSys) Init(buckets []BucketInfo, objAPI ObjectLayer) error

Init - Initializes in-memory bucket encryption config cache for the given list of buckets

func (*BucketSSEConfigSys) Remove Uses

func (sys *BucketSSEConfigSys) Remove(bucket string)

Remove - removes bucket encryption config for given bucket.

func (*BucketSSEConfigSys) Set Uses

func (sys *BucketSSEConfigSys) Set(bucket string, config bucketsse.BucketSSEConfig)

Set - sets bucket encryption config to given bucket name.

type CacheChecksumInfoV1 Uses

type CacheChecksumInfoV1 struct {
    Algorithm string `json:"algorithm"`
    Blocksize int64  `json:"blocksize"`
}

CacheChecksumInfoV1 - carries checksums of individual blocks on disk.

type CacheObjectLayer Uses

type CacheObjectLayer interface {
    // Object operations.
    GetObjectNInfo(ctx context.Context, bucket, object string, rs *HTTPRangeSpec, h http.Header, lockType LockType, opts ObjectOptions) (gr *GetObjectReader, err error)
    GetObjectInfo(ctx context.Context, bucket, object string, opts ObjectOptions) (objInfo ObjectInfo, err error)
    DeleteObject(ctx context.Context, bucket, object string) error
    DeleteObjects(ctx context.Context, bucket string, objects []string) ([]error, error)
    PutObject(ctx context.Context, bucket, object string, data *PutObjReader, opts ObjectOptions) (objInfo ObjectInfo, err error)
    CopyObject(ctx context.Context, srcBucket, srcObject, destBucket, destObject string, srcInfo ObjectInfo, srcOpts, dstOpts ObjectOptions) (objInfo ObjectInfo, err error)
    // Storage operations.
    StorageInfo(ctx context.Context) CacheStorageInfo
    CacheStats() *CacheStats
}

CacheObjectLayer implements primitives for cache object API layer.

type CacheStats Uses

type CacheStats struct {
    BytesServed atomic.Uint64
    Hits        atomic.Uint64
    Misses      atomic.Uint64
}

CacheStats - represents bytes served from cache, cache hits and cache misses.

type CacheStatusType Uses

type CacheStatusType string

CacheStatusType - whether the request was served from cache.

const (
    // CacheHit - whether object was served from cache.
    CacheHit CacheStatusType = "HIT"

    // CacheMiss - object served from backend.
    CacheMiss CacheStatusType = "MISS"
)

func (CacheStatusType) String Uses

func (c CacheStatusType) String() string

type CacheStorageInfo Uses

type CacheStorageInfo struct {
    Total uint64 // Total cache disk space.
    Free  uint64 // Free cache available space.
}

CacheStorageInfo - represents total, free capacity of underlying cache storage.

type CheckCopyPreconditionFn Uses

type CheckCopyPreconditionFn func(o ObjectInfo, encETag string) bool

CheckCopyPreconditionFn returns true if copy precondition check failed.

type ChecksumInfo Uses

type ChecksumInfo struct {
    PartNumber int
    Algorithm  BitrotAlgorithm
    Hash       []byte
}

ChecksumInfo - carries checksums of individual scattered parts per disk.

func (ChecksumInfo) MarshalJSON Uses

func (c ChecksumInfo) MarshalJSON() ([]byte, error)

MarshalJSON marshals the ChecksumInfo struct

func (*ChecksumInfo) UnmarshalJSON Uses

func (c *ChecksumInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON - should never be called, instead xlMetaV1UnmarshalJSON() should be used.

type ClientGrantsResult Uses

type ClientGrantsResult struct {
    // The identifiers for the temporary security credentials that the operation
    // returns.
    AssumedRoleUser AssumedRoleUser `xml:",omitempty"`

    // The intended audience (also known as client ID) of the web identity token.
    // This is traditionally the client identifier issued to the application that
    // requested the client grants.
    Audience string `xml:",omitempty"`

    // The temporary security credentials, which include an access key ID, a secret
    // access key, and a security (or session) token.
    //
    // Note: The size of the security token that STS APIs return is not fixed. We
    // strongly recommend that you make no assumptions about the maximum size. As
    // of this writing, the typical size is less than 4096 bytes, but that can vary.
    // Also, future updates to AWS might require larger sizes.
    Credentials auth.Credentials `xml:",omitempty"`

    // A percentage value that indicates the size of the policy in packed form.
    // The service rejects any policy with a packed size greater than 100 percent,
    // which means the policy exceeded the allowed space.
    PackedPolicySize int `xml:",omitempty"`

    // The issuing authority of the web identity token presented. For OpenID Connect
    // ID tokens, this contains the value of the iss field. For OAuth 2.0 access tokens,
    // this contains the value of the ProviderId parameter that was passed in the
    // AssumeRoleWithClientGrants request.
    Provider string `xml:",omitempty"`

    // The unique user identifier that is returned by the identity provider.
    // This identifier is associated with the Token that was submitted
    // with the AssumeRoleWithClientGrants call. The identifier is typically unique to
    // the user and the application that acquired the ClientGrantsToken (pairwise identifier).
    // For OpenID Connect ID tokens, this field contains the value returned by the identity
    // provider as the token's sub (Subject) claim.
    SubjectFromToken string `xml:",omitempty"`
}

ClientGrantsResult - Contains the response to a successful AssumeRoleWithClientGrants request, including temporary credentials that can be used to make MinIO API requests.

type CommonPrefix Uses

type CommonPrefix struct {
    Prefix string
}

CommonPrefix container for prefix response in ListObjectsResponse

type CompleteMultipartUpload Uses

type CompleteMultipartUpload struct {
    Parts []CompletePart `xml:"Part"`
}

CompleteMultipartUpload - represents list of parts which are completed, this is sent by the client during CompleteMultipartUpload request.

type CompleteMultipartUploadResponse Uses

type CompleteMultipartUploadResponse struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CompleteMultipartUploadResult" json:"-"`

    Location string
    Bucket   string
    Key      string
    ETag     string
}

CompleteMultipartUploadResponse container for completed multipart upload response

type CompletePart Uses

type CompletePart struct {
    // Part number identifying the part. This is a positive integer between 1 and
    // 10,000
    PartNumber int

    // Entity tag returned when the part was uploaded.
    ETag string
}

CompletePart - represents the part that was completed, this is sent by the client during CompleteMultipartUpload request.

type CompletedParts Uses

type CompletedParts []CompletePart

CompletedParts - is a collection satisfying sort.Interface.

func (CompletedParts) Len Uses

func (a CompletedParts) Len() int

func (CompletedParts) Less Uses

func (a CompletedParts) Less(i, j int) bool

func (CompletedParts) Swap Uses

func (a CompletedParts) Swap(i, j int)

type ConfigDir Uses

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

ConfigDir - points to a user set directory.

func (*ConfigDir) Get Uses

func (dir *ConfigDir) Get() string

Get - returns current directory.

type ConfigSys Uses

type ConfigSys struct{}

ConfigSys - config system.

func NewConfigSys Uses

func NewConfigSys() *ConfigSys

NewConfigSys - creates new config system object.

func (*ConfigSys) Init Uses

func (sys *ConfigSys) Init(objAPI ObjectLayer) error

Init - initializes config system from config.json.

func (*ConfigSys) Load Uses

func (sys *ConfigSys) Load(objAPI ObjectLayer) error

Load - load config.json.

func (*ConfigSys) WatchConfigNASDisk Uses

func (sys *ConfigSys) WatchConfigNASDisk(objAPI ObjectLayer)

WatchConfigNASDisk - watches nas disk on periodic basis.

type ConnStats Uses

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

ConnStats - Network statistics Count total input/output transferred bytes during the server's life.

type ConsoleLogger Uses

type ConsoleLogger struct {
    Enable bool `json:"enable"`
}

ConsoleLogger is introduced to workaround the dependency about logrus

type CopyObjectPartResponse Uses

type CopyObjectPartResponse struct {
    XMLName      xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopyPartResult" json:"-"`
    LastModified string   // time string of format "2006-01-02T15:04:05.000Z"
    ETag         string   // md5sum of the copied object part.
}

CopyObjectPartResponse container returns ETag and LastModified of the successfully copied object

type CopyObjectResponse Uses

type CopyObjectResponse struct {
    XMLName      xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopyObjectResult" json:"-"`
    LastModified string   // time string of format "2006-01-02T15:04:05.000Z"
    ETag         string   // md5sum of the copied object.
}

CopyObjectResponse container returns ETag and LastModified of the successfully copied object

type DataUsageInfo Uses

type DataUsageInfo struct {
    // LastUpdate is the timestamp of when the data usage info was last updated.
    // This does not indicate a full scan.
    LastUpdate time.Time `json:"lastUpdate"`

    ObjectsCount uint64 `json:"objectsCount"`
    // Objects total size
    ObjectsTotalSize uint64 `json:"objectsTotalSize"`

    // ObjectsSizesHistogram contains information on objects across all buckets.
    // See ObjectsHistogramIntervals.
    ObjectsSizesHistogram map[string]uint64 `json:"objectsSizesHistogram"`

    BucketsCount uint64 `json:"bucketsCount"`
    // BucketsSizes is "bucket name" -> size.
    BucketsSizes map[string]uint64 `json:"bucketsSizes"`
}

DataUsageInfo represents data usage stats of the underlying Object API

type DecryptBlocksReader Uses

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

DecryptBlocksReader - decrypts multipart parts, while implementing a io.Reader compatible interface.

func (*DecryptBlocksReader) Read Uses

func (d *DecryptBlocksReader) Read(p []byte) (int, error)

type DeleteError Uses

type DeleteError struct {
    Code    string
    Message string
    Key     string
}

DeleteError structure.

type DeleteFileBulkErrsResp Uses

type DeleteFileBulkErrsResp struct {
    Errs []error
}

DeleteFileBulkErrsResp - collection of deleteFile errors for bulk deletes

type DeleteObjectsRequest Uses

type DeleteObjectsRequest struct {
    // Element to enable quiet mode for the request
    Quiet bool
    // List of objects to be deleted
    Objects []ObjectIdentifier `xml:"Object"`
}

DeleteObjectsRequest - xml carrying the object key names which needs to be deleted.

type DeleteObjectsResponse Uses

type DeleteObjectsResponse struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ DeleteResult" json:"-"`

    // Collection of all deleted objects
    DeletedObjects []ObjectIdentifier `xml:"Deleted,omitempty"`

    // Collection of errors deleting certain objects.
    Errors []DeleteError `xml:"Error,omitempty"`
}

DeleteObjectsResponse container for multiple object deletes.

type DeletePrefixesErrsResp Uses

type DeletePrefixesErrsResp struct {
    Errs []error
}

DeletePrefixesErrsResp - collection of delete errors for bulk prefixes deletes

type DiscoveryDocResp Uses

type DiscoveryDocResp struct {
    DiscoveryDoc openid.DiscoveryDoc
    UIVersion    string `json:"uiVersion"`
    ClientID     string `json:"clientId"`
}

DiscoveryDocResp - OpenID discovery document reply.

type DiskInfo Uses

type DiskInfo struct {
    Total     uint64
    Free      uint64
    Used      uint64
    RootDisk  bool
    MountPath string
}

DiskInfo is an extended type which returns current disk usage per path.

type DownloadZipArgs Uses

type DownloadZipArgs struct {
    Objects    []string `json:"objects"`    // can be files or sub-directories
    Prefix     string   `json:"prefix"`     // current directory in the browser-ui
    BucketName string   `json:"bucketname"` // bucket name.
}

DownloadZipArgs - Argument for downloading a bunch of files as a zip file. JSON will look like: '{"bucketname":"testbucket","prefix":"john/pics/","objects":["hawaii/","maldives/","sanjose.jpg"]}'

type Endpoint Uses

type Endpoint struct {
    *url.URL
    IsLocal bool
}

Endpoint - any type of endpoint.

func NewEndpoint Uses

func NewEndpoint(arg string) (ep Endpoint, e error)

NewEndpoint - returns new endpoint based on given arguments.

func (Endpoint) HTTPS Uses

func (endpoint Endpoint) HTTPS() bool

HTTPS - returns true if secure for URLEndpointType.

func (Endpoint) String Uses

func (endpoint Endpoint) String() string

func (Endpoint) Type Uses

func (endpoint Endpoint) Type() EndpointType

Type - returns type of endpoint.

func (*Endpoint) UpdateIsLocal Uses

func (endpoint *Endpoint) UpdateIsLocal() (err error)

UpdateIsLocal - resolves the host and updates if it is local or not.

type EndpointType Uses

type EndpointType int

EndpointType - enum for endpoint type.

const (
    // PathEndpointType - path style endpoint type enum.
    PathEndpointType EndpointType = iota + 1

    // URLEndpointType - URL style endpoint type enum.
    URLEndpointType
)

type EndpointZones Uses

type EndpointZones []ZoneEndpoints

EndpointZones - list of list of endpoints

func (*EndpointZones) Add Uses

func (l *EndpointZones) Add(zeps ZoneEndpoints) error

Add add zone endpoints

func (EndpointZones) FirstLocal Uses

func (l EndpointZones) FirstLocal() bool

FirstLocal returns true if the first endpoint is local.

func (EndpointZones) HTTPS Uses

func (l EndpointZones) HTTPS() bool

HTTPS - returns true if secure for URLEndpointType.

func (EndpointZones) Hosts Uses

func (l EndpointZones) Hosts() []string

Hosts - returns list of unique hosts

func (EndpointZones) NEndpoints Uses

func (l EndpointZones) NEndpoints() (count int)

NEndpoints - returns all nodes count

type Endpoints Uses

type Endpoints []Endpoint

Endpoints - list of same type of endpoint.

func NewEndpoints Uses

func NewEndpoints(args ...string) (endpoints Endpoints, err error)

NewEndpoints - returns new endpoint list based on input args.

func (Endpoints) GetString Uses

func (endpoints Endpoints) GetString(i int) string

GetString - returns endpoint string of i-th endpoint (0-based), and empty string for invalid indexes.

func (Endpoints) HTTPS Uses

func (endpoints Endpoints) HTTPS() bool

HTTPS - returns true if secure for URLEndpointType.

func (Endpoints) UpdateIsLocal Uses

func (endpoints Endpoints) UpdateIsLocal(foundPrevLocal bool) error

UpdateIsLocal - resolves the host and discovers the local host.

type Erasure Uses

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

Erasure - erasure encoding details.

func NewErasure Uses

func NewErasure(ctx context.Context, dataBlocks, parityBlocks int, blockSize int64) (e Erasure, err error)

NewErasure creates a new ErasureStorage.

func (Erasure) Decode Uses

func (e Erasure) Decode(ctx context.Context, writer io.Writer, readers []io.ReaderAt, offset, length, totalLength int64) error

Decode reads from readers, reconstructs data if needed and writes the data to the writer.

func (*Erasure) DecodeDataAndParityBlocks Uses

func (e *Erasure) DecodeDataAndParityBlocks(ctx context.Context, data [][]byte) error

DecodeDataAndParityBlocks decodes the given erasure-coded data and verifies it. It returns an error if the decoding failed.

func (*Erasure) DecodeDataBlocks Uses

func (e *Erasure) DecodeDataBlocks(data [][]byte) error

DecodeDataBlocks decodes the given erasure-coded data. It only decodes the data blocks but does not verify them. It returns an error if the decoding failed.

func (*Erasure) Encode Uses

func (e *Erasure) Encode(ctx context.Context, src io.Reader, writers []io.Writer, buf []byte, quorum int) (total int64, err error)

Encode reads from the reader, erasure-encodes the data and writes to the writers.

func (*Erasure) EncodeData Uses

func (e *Erasure) EncodeData(ctx context.Context, data []byte) ([][]byte, error)

EncodeData encodes the given data and returns the erasure-coded data. It returns an error if the erasure coding failed.

func (Erasure) Heal Uses

func (e Erasure) Heal(ctx context.Context, readers []io.ReaderAt, writers []io.Writer, size int64) error

Heal heals the shard files on non-nil writers. Note that the quorum passed is 1 as healing should continue even if it has been successful healing only one shard file.

func (*Erasure) ShardFileSize Uses

func (e *Erasure) ShardFileSize(totalLength int64) int64

ShardFileSize - returns final erasure size from original size.

func (*Erasure) ShardFileTillOffset Uses

func (e *Erasure) ShardFileTillOffset(startOffset, length, totalLength int64) int64

ShardFileTillOffset - returns the effectiv eoffset where erasure reading begins.

func (*Erasure) ShardSize Uses

func (e *Erasure) ShardSize() int64

ShardSize - returns actual shared size from erasure blockSize.

type ErasureInfo Uses

type ErasureInfo struct {
    // Algorithm is the string representation of erasure-coding-algorithm
    Algorithm string `json:"algorithm"`
    // DataBlocks is the number of data blocks for erasure-coding
    DataBlocks int `json:"data"`
    // ParityBlocks is the number of parity blocks for erasure-coding
    ParityBlocks int `json:"parity"`
    // BlockSize is the size of one erasure-coded block
    BlockSize int64 `json:"blockSize"`
    // Index is the index of the current disk
    Index int `json:"index"`
    // Distribution is the distribution of the data and parity blocks
    Distribution []int `json:"distribution"`
    // Checksums holds all bitrot checksums of all erasure encoded blocks
    Checksums []ChecksumInfo `json:"checksum,omitempty"`
}

ErasureInfo holds erasure coding and bitrot related information.

func (*ErasureInfo) AddChecksumInfo Uses

func (e *ErasureInfo) AddChecksumInfo(ckSumInfo ChecksumInfo)

AddChecksumInfo adds a checksum of a part.

func (ErasureInfo) GetChecksumInfo Uses

func (e ErasureInfo) GetChecksumInfo(partNumber int) (ckSum ChecksumInfo)

GetChecksumInfo - get checksum of a part.

type FSChecksumInfoV1 Uses

type FSChecksumInfoV1 struct {
    Algorithm string
    Blocksize int64
    Hashes    [][]byte
}

FSChecksumInfoV1 - carries checksums of individual blocks on disk.

func (FSChecksumInfoV1) MarshalJSON Uses

func (c FSChecksumInfoV1) MarshalJSON() ([]byte, error)

MarshalJSON marshals the FSChecksumInfoV1 struct

func (*FSChecksumInfoV1) UnmarshalJSON Uses

func (c *FSChecksumInfoV1) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals the the given data into the FSChecksumInfoV1 struct

type FSObjects Uses

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

FSObjects - Implements fs object layer.

func (*FSObjects) AbortMultipartUpload Uses

func (fs *FSObjects) AbortMultipartUpload(ctx context.Context, bucket, object, uploadID string) error

AbortMultipartUpload - aborts an ongoing multipart operation signified by the input uploadID. This is an atomic operation doesn't require clients to initiate multiple such requests.

All parts are purged from all disks and reference to the uploadID would be removed from the system, rollback is not possible on this operation.

Implements S3 compatible Abort multipart API, slight difference is that this is an atomic idempotent operation. Subsequent calls have no affect and further requests to the same uploadID would not be honored.

func (*FSObjects) CompleteMultipartUpload Uses

func (fs *FSObjects) CompleteMultipartUpload(ctx context.Context, bucket string, object string, uploadID string, parts []CompletePart, opts ObjectOptions) (oi ObjectInfo, e error)

CompleteMultipartUpload - completes an ongoing multipart transaction after receiving all the parts indicated by the client. Returns an md5sum calculated by concatenating all the individual md5sums of all the parts.

Implements S3 compatible Complete multipart API.

func (*FSObjects) CopyObject Uses

func (fs *FSObjects) CopyObject(ctx context.Context, srcBucket, srcObject, dstBucket, dstObject string, srcInfo ObjectInfo, srcOpts, dstOpts ObjectOptions) (oi ObjectInfo, e error)

CopyObject - copy object source object to destination object. if source object and destination object are same we only update metadata.

func (*FSObjects) CopyObjectPart Uses

func (fs *FSObjects) CopyObjectPart(ctx context.Context, srcBucket, srcObject, dstBucket, dstObject, uploadID string, partID int,
    startOffset int64, length int64, srcInfo ObjectInfo, srcOpts, dstOpts ObjectOptions) (pi PartInfo, e error)

CopyObjectPart - similar to PutObjectPart but reads data from an existing object. Internally incoming data is written to '.minio.sys/tmp' location and safely renamed to '.minio.sys/multipart' for reach parts.

func (*FSObjects) CrawlAndGetDataUsage Uses

func (fs *FSObjects) CrawlAndGetDataUsage(ctx context.Context, updates chan<- DataUsageInfo) error

CrawlAndGetDataUsage returns data usage stats of the current FS deployment

func (*FSObjects) DeleteBucket Uses

func (fs *FSObjects) DeleteBucket(ctx context.Context, bucket string, forceDelete bool) error

DeleteBucket - delete a bucket and all the metadata associated with the bucket including pending multipart, object metadata.

func (*FSObjects) DeleteBucketLifecycle Uses

func (fs *FSObjects) DeleteBucketLifecycle(ctx context.Context, bucket string) error

DeleteBucketLifecycle deletes all lifecycle on bucket

func (*FSObjects) DeleteBucketPolicy Uses

func (fs *FSObjects) DeleteBucketPolicy(ctx context.Context, bucket string) error

DeleteBucketPolicy deletes all policies on bucket

func (*FSObjects) DeleteBucketSSEConfig Uses

func (fs *FSObjects) DeleteBucketSSEConfig(ctx context.Context, bucket string) error

DeleteBucketSSEConfig deletes bucket encryption config on given bucket

func (*FSObjects) DeleteObject Uses

func (fs *FSObjects) DeleteObject(ctx context.Context, bucket, object string) error

DeleteObject - deletes an object from a bucket, this operation is destructive and there are no rollbacks supported.

func (*FSObjects) DeleteObjectTag Uses

func (fs *FSObjects) DeleteObjectTag(ctx context.Context, bucket, object string) error

DeleteObjectTag - delete object tags from an existing object

func (*FSObjects) DeleteObjects Uses

func (fs *FSObjects) DeleteObjects(ctx context.Context, bucket string, objects []string) ([]error, error)

DeleteObjects - deletes an object from a bucket, this operation is destructive and there are no rollbacks supported.

func (*FSObjects) GetBucketInfo Uses

func (fs *FSObjects) GetBucketInfo(ctx context.Context, bucket string) (bi BucketInfo, e error)

GetBucketInfo - fetch bucket metadata info.

func (*FSObjects) GetBucketLifecycle Uses

func (fs *FSObjects) GetBucketLifecycle(ctx context.Context, bucket string) (*lifecycle.Lifecycle, error)

GetBucketLifecycle will get lifecycle on bucket

func (*FSObjects) GetBucketPolicy Uses

func (fs *FSObjects) GetBucketPolicy(ctx context.Context, bucket string) (*policy.Policy, error)

GetBucketPolicy will get policy on bucket

func (*FSObjects) GetBucketSSEConfig Uses

func (fs *FSObjects) GetBucketSSEConfig(ctx context.Context, bucket string) (*bucketsse.BucketSSEConfig, error)

GetBucketSSEConfig returns bucket encryption config on given bucket

func (*FSObjects) GetMetrics Uses

func (fs *FSObjects) GetMetrics(ctx context.Context) (*Metrics, error)

GetMetrics - no op

func (*FSObjects) GetObject Uses

func (fs *FSObjects) GetObject(ctx context.Context, bucket, object string, offset int64, length int64, writer io.Writer, etag string, opts ObjectOptions) (err error)

GetObject - reads an object from the disk. Supports additional parameters like offset and length which are synonymous with HTTP Range requests.

startOffset indicates the starting read location of the object. length indicates the total length of the object.

func (*FSObjects) GetObjectInfo Uses

func (fs *FSObjects) GetObjectInfo(ctx context.Context, bucket, object string, opts ObjectOptions) (oi ObjectInfo, e error)

GetObjectInfo - reads object metadata and replies back ObjectInfo.

func (*FSObjects) GetObjectNInfo Uses

func (fs *FSObjects) GetObjectNInfo(ctx context.Context, bucket, object string, rs *HTTPRangeSpec, h http.Header, lockType LockType, opts ObjectOptions) (gr *GetObjectReader, err error)

GetObjectNInfo - returns object info and a reader for object content.

func (*FSObjects) GetObjectTag Uses

func (fs *FSObjects) GetObjectTag(ctx context.Context, bucket, object string) (tagging.Tagging, error)

GetObjectTag - get object tags from an existing object

func (*FSObjects) HealBucket Uses

func (fs *FSObjects) HealBucket(ctx context.Context, bucket string, dryRun, remove bool) (madmin.HealResultItem,
    error)

HealBucket - no-op for fs, Valid only for XL.

func (*FSObjects) HealFormat Uses

func (fs *FSObjects) HealFormat(ctx context.Context, dryRun bool) (madmin.HealResultItem, error)

HealFormat - no-op for fs, Valid only for XL.

func (*FSObjects) HealObject Uses

func (fs *FSObjects) HealObject(ctx context.Context, bucket, object string, opts madmin.HealOpts) (
    res madmin.HealResultItem, err error)

HealObject - no-op for fs. Valid only for XL.

func (*FSObjects) HealObjects Uses

func (fs *FSObjects) HealObjects(ctx context.Context, bucket, prefix string, opts madmin.HealOpts, fn healObjectFn) (e error)

HealObjects - no-op for fs. Valid only for XL.

func (*FSObjects) IsCompressionSupported Uses

func (fs *FSObjects) IsCompressionSupported() bool

IsCompressionSupported returns whether compression is applicable for this layer.

func (*FSObjects) IsEncryptionSupported Uses

func (fs *FSObjects) IsEncryptionSupported() bool

IsEncryptionSupported returns whether server side encryption is implemented for this layer.

func (*FSObjects) IsListenBucketSupported Uses

func (fs *FSObjects) IsListenBucketSupported() bool

IsListenBucketSupported returns whether listen bucket notification is applicable for this layer.

func (*FSObjects) IsNotificationSupported Uses

func (fs *FSObjects) IsNotificationSupported() bool

IsNotificationSupported returns whether bucket notification is applicable for this layer.

func (*FSObjects) IsReady Uses

func (fs *FSObjects) IsReady(_ context.Context) bool

IsReady - Check if the backend disk is ready to accept traffic.

func (*FSObjects) ListBuckets Uses

func (fs *FSObjects) ListBuckets(ctx context.Context) ([]BucketInfo, error)

ListBuckets - list all s3 compatible buckets (directories) at fsPath.

func (*FSObjects) ListBucketsHeal Uses

func (fs *FSObjects) ListBucketsHeal(ctx context.Context) ([]BucketInfo, error)

ListBucketsHeal - list all buckets to be healed. Valid only for XL

func (*FSObjects) ListMultipartUploads Uses

func (fs *FSObjects) ListMultipartUploads(ctx context.Context, bucket, object, keyMarker, uploadIDMarker, delimiter string, maxUploads int) (result ListMultipartsInfo, e error)

ListMultipartUploads - lists all the uploadIDs for the specified object. We do not support prefix based listing.

func (*FSObjects) ListObjectParts Uses

func (fs *FSObjects) ListObjectParts(ctx context.Context, bucket, object, uploadID string, partNumberMarker, maxParts int, opts ObjectOptions) (result ListPartsInfo, e error)

ListObjectParts - lists all previously uploaded parts for a given object and uploadID. Takes additional input of part-number-marker to indicate where the listing should begin from.

Implements S3 compatible ListObjectParts API. The resulting ListPartsInfo structure is unmarshalled directly into XML and replied back to the client.

func (*FSObjects) ListObjects Uses

func (fs *FSObjects) ListObjects(ctx context.Context, bucket, prefix, marker, delimiter string, maxKeys int) (loi ListObjectsInfo, e error)

ListObjects - list all objects at prefix upto maxKeys., optionally delimited by '/'. Maintains the list pool state for future re-entrant list requests.

func (*FSObjects) ListObjectsV2 Uses

func (fs *FSObjects) ListObjectsV2(ctx context.Context, bucket, prefix, continuationToken, delimiter string, maxKeys int, fetchOwner bool, startAfter string) (result ListObjectsV2Info, err error)

ListObjectsV2 lists all blobs in bucket filtered by prefix

func (*FSObjects) MakeBucketWithLocation Uses

func (fs *FSObjects) MakeBucketWithLocation(ctx context.Context, bucket, location string) error

MakeBucketWithLocation - create a new bucket, returns if it already exists.

func (*FSObjects) NewMultipartUpload Uses

func (fs *FSObjects) NewMultipartUpload(ctx context.Context, bucket, object string, opts ObjectOptions) (string, error)

NewMultipartUpload - initialize a new multipart upload, returns a unique id. The unique id returned here is of UUID form, for each subsequent request each UUID is unique.

Implements S3 compatible initiate multipart API.

func (*FSObjects) NewNSLock Uses

func (fs *FSObjects) NewNSLock(ctx context.Context, bucket string, objects ...string) RWLocker

NewNSLock - initialize a new namespace RWLocker instance.

func (*FSObjects) PutObject Uses

func (fs *FSObjects) PutObject(ctx context.Context, bucket string, object string, r *PutObjReader, opts ObjectOptions) (objInfo ObjectInfo, retErr error)

PutObject - creates an object upon reading from the input stream until EOF, writes data directly to configured filesystem path. Additionally writes `fs.json` which carries the necessary metadata for future object operations.

func (*FSObjects) PutObjectPart Uses

func (fs *FSObjects) PutObjectPart(ctx context.Context, bucket, object, uploadID string, partID int, r *PutObjReader, opts ObjectOptions) (pi PartInfo, e error)

PutObjectPart - reads incoming data until EOF for the part file on an ongoing multipart transaction. Internally incoming data is written to '.minio.sys/tmp' location and safely renamed to '.minio.sys/multipart' for reach parts.

func (*FSObjects) PutObjectTag Uses

func (fs *FSObjects) PutObjectTag(ctx context.Context, bucket, object string, tags string) error

PutObjectTag - replace or add tags to an existing object

func (*FSObjects) ReloadFormat Uses

func (fs *FSObjects) ReloadFormat(ctx context.Context, dryRun bool) error

ReloadFormat - no-op for fs, Valid only for XL.

func (*FSObjects) SetBucketLifecycle Uses

func (fs *FSObjects) SetBucketLifecycle(ctx context.Context, bucket string, lifecycle *lifecycle.Lifecycle) error

SetBucketLifecycle sets lifecycle on bucket

func (*FSObjects) SetBucketPolicy Uses

func (fs *FSObjects) SetBucketPolicy(ctx context.Context, bucket string, policy *policy.Policy) error

SetBucketPolicy sets policy on bucket

func (*FSObjects) SetBucketSSEConfig Uses

func (fs *FSObjects) SetBucketSSEConfig(ctx context.Context, bucket string, config *bucketsse.BucketSSEConfig) error

SetBucketSSEConfig sets bucket encryption config on given bucket

func (*FSObjects) Shutdown Uses

func (fs *FSObjects) Shutdown(ctx context.Context) error

Shutdown - should be called when process shuts down.

func (*FSObjects) StorageInfo Uses

func (fs *FSObjects) StorageInfo(ctx context.Context, _ bool) StorageInfo

StorageInfo - returns underlying storage statistics.

func (*FSObjects) Walk Uses

func (fs *FSObjects) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo) error

Walk a bucket, optionally prefix recursively, until we have returned all the content to objectInfo channel, it is callers responsibility to allocate a receive channel for ObjectInfo, upon any unhandled error walker returns error. Optionally if context.Done() is received then Walk() stops the walker.

type FileInfo Uses

type FileInfo struct {
    // Name of the volume.
    Volume string

    // Name of the file.
    Name string

    // Date and time when the file was last modified.
    ModTime time.Time

    // Total file size.
    Size int64

    // File mode bits.
    Mode os.FileMode

    // File metadata
    Metadata map[string]string

    // All the parts per object.
    Parts []ObjectPartInfo

    Quorum int
}

FileInfo - represents file stat information.

func (FileInfo) ToObjectInfo Uses

func (entry FileInfo) ToObjectInfo() ObjectInfo

ToObjectInfo converts FileInfo into objectInfo.

type FileInfoCh Uses

type FileInfoCh struct {
    Ch    chan FileInfo
    Prev  FileInfo
    Valid bool
}

FileInfoCh - file info channel

func (*FileInfoCh) Pop Uses

func (f *FileInfoCh) Pop() (fi FileInfo, ok bool)

Pop - pops a cached entry if any, or from the cached channel.

func (*FileInfoCh) Push Uses

func (f *FileInfoCh) Push(fi FileInfo)

Push - cache an entry, for Pop() later.

type FileLogger Uses

type FileLogger struct {
    Enable   bool   `json:"enable"`
    Filename string `json:"filename"`
}

FileLogger is introduced to workaround the dependency about logrus

type FilesInfo Uses

type FilesInfo struct {
    Files       []FileInfo
    IsTruncated bool
}

FilesInfo represent a list of files, additionally indicates if the list is last.

type Gateway Uses

type Gateway interface {
    // Name returns the unique name of the gateway.
    Name() string

    // NewGatewayLayer returns a new  ObjectLayer.
    NewGatewayLayer(creds auth.Credentials) (ObjectLayer, error)

    // Returns true if gateway is ready for production.
    Production() bool
}

Gateway represents a gateway backend.

type GatewayLocker Uses

type GatewayLocker struct {
    ObjectLayer
    // contains filtered or unexported fields
}

GatewayLocker implements custom NeNSLock implementation

func (*GatewayLocker) NewNSLock Uses

func (l *GatewayLocker) NewNSLock(ctx context.Context, bucket string, objects ...string) RWLocker

NewNSLock - implements gateway level locker

type GatewayUnsupported Uses

type GatewayUnsupported struct{}

GatewayUnsupported list of unsupported call stubs for gateway.

func (GatewayUnsupported) AbortMultipartUpload Uses

func (a GatewayUnsupported) AbortMultipartUpload(ctx context.Context, bucket string, object string, uploadID string) error

AbortMultipartUpload aborts a ongoing multipart upload

func (GatewayUnsupported) CompleteMultipartUpload Uses

func (a GatewayUnsupported) CompleteMultipartUpload(ctx context.Context, bucket string, object string, uploadID string, uploadedParts []CompletePart, opts ObjectOptions) (oi ObjectInfo, err error)

CompleteMultipartUpload completes ongoing multipart upload and finalizes object

func (GatewayUnsupported) CopyObject Uses

func (a GatewayUnsupported) CopyObject(ctx context.Context, srcBucket string, srcObject string, destBucket string, destObject string,
    srcInfo ObjectInfo, srcOpts, dstOpts ObjectOptions) (objInfo ObjectInfo, err error)

CopyObject copies a blob from source container to destination container.

func (GatewayUnsupported) CopyObjectPart Uses

func (a GatewayUnsupported) CopyObjectPart(ctx context.Context, srcBucket, srcObject, destBucket, destObject, uploadID string, partID int, startOffset, length int64, srcInfo ObjectInfo, srcOpts, dstOpts ObjectOptions) (pi PartInfo, err error)

CopyObjectPart copy part of object to uploadID for another object

func (GatewayUnsupported) CrawlAndGetDataUsage Uses

func (a GatewayUnsupported) CrawlAndGetDataUsage(ctx context.Context, updates chan<- DataUsageInfo) error

CrawlAndGetDataUsage - crawl is not implemented for gateway

func (GatewayUnsupported) DeleteBucketLifecycle Uses

func (a GatewayUnsupported) DeleteBucketLifecycle(ctx context.Context, bucket string) error

DeleteBucketLifecycle deletes all lifecycle on bucket

func (GatewayUnsupported) DeleteBucketPolicy Uses

func (a GatewayUnsupported) DeleteBucketPolicy(ctx context.Context, bucket string) error

DeleteBucketPolicy deletes all policies on bucket

func (GatewayUnsupported) DeleteBucketSSEConfig Uses

func (a GatewayUnsupported) DeleteBucketSSEConfig(ctx context.Context, bucket string) error

DeleteBucketSSEConfig deletes bucket encryption config on given bucket

func (GatewayUnsupported) DeleteObjectTag Uses

func (a GatewayUnsupported) DeleteObjectTag(ctx context.Context, bucket, object string) error

DeleteObjectTag - not implemented.

func (GatewayUnsupported) GetBucketLifecycle Uses

func (a GatewayUnsupported) GetBucketLifecycle(ctx context.Context, bucket string) (*lifecycle.Lifecycle, error)

GetBucketLifecycle will get lifecycle on bucket

func (GatewayUnsupported) GetBucketPolicy Uses

func (a GatewayUnsupported) GetBucketPolicy(ctx context.Context, bucket string) (bucketPolicy *policy.Policy, err error)

GetBucketPolicy will get policy on bucket

func (GatewayUnsupported) GetBucketSSEConfig Uses

func (a GatewayUnsupported) GetBucketSSEConfig(ctx context.Context, bucket string) (*bucketsse.BucketSSEConfig, error)

GetBucketSSEConfig returns bucket encryption config on given bucket

func (GatewayUnsupported) GetMetrics Uses

func (a GatewayUnsupported) GetMetrics(ctx context.Context) (*Metrics, error)

GetMetrics - no op

func (GatewayUnsupported) GetObjectTag Uses

func (a GatewayUnsupported) GetObjectTag(ctx context.Context, bucket, object string) (tagging.Tagging, error)

GetObjectTag - not implemented.

func (GatewayUnsupported) HealBucket Uses

func (a GatewayUnsupported) HealBucket(ctx context.Context, bucket string, dryRun, remove bool) (madmin.HealResultItem, error)

HealBucket - Not implemented stub

func (GatewayUnsupported) HealFormat Uses

func (a GatewayUnsupported) HealFormat(ctx context.Context, dryRun bool) (madmin.HealResultItem, error)

HealFormat - Not implemented stub

func (GatewayUnsupported) HealObject Uses

func (a GatewayUnsupported) HealObject(ctx context.Context, bucket, object string, opts madmin.HealOpts) (h madmin.HealResultItem, e error)

HealObject - Not implemented stub

func (GatewayUnsupported) HealObjects Uses

func (a GatewayUnsupported) HealObjects(ctx context.Context, bucket, prefix string, opts madmin.HealOpts, fn healObjectFn) (e error)

HealObjects - Not implemented stub

func (GatewayUnsupported) IsCompressionSupported Uses

func (a GatewayUnsupported) IsCompressionSupported() bool

IsCompressionSupported returns whether compression is applicable for this layer.

func (GatewayUnsupported) IsEncryptionSupported Uses

func (a GatewayUnsupported) IsEncryptionSupported() bool

IsEncryptionSupported returns whether server side encryption is implemented for this layer.

func (GatewayUnsupported) IsListenBucketSupported Uses

func (a GatewayUnsupported) IsListenBucketSupported() bool

IsListenBucketSupported returns whether listen bucket notification is applicable for this layer.

func (GatewayUnsupported) IsNotificationSupported Uses

func (a GatewayUnsupported) IsNotificationSupported() bool

IsNotificationSupported returns whether bucket notification is applicable for this layer.

func (GatewayUnsupported) IsReady Uses

func (a GatewayUnsupported) IsReady(_ context.Context) bool

IsReady - No Op.

func (GatewayUnsupported) ListBucketsHeal Uses

func (a GatewayUnsupported) ListBucketsHeal(ctx context.Context) (buckets []BucketInfo, err error)

ListBucketsHeal - Not implemented stub

func (GatewayUnsupported) ListMultipartUploads Uses

func (a GatewayUnsupported) ListMultipartUploads(ctx context.Context, bucket string, prefix string, keyMarker string, uploadIDMarker string, delimiter string, maxUploads int) (lmi ListMultipartsInfo, err error)

ListMultipartUploads lists all multipart uploads.

func (GatewayUnsupported) ListObjectParts Uses

func (a GatewayUnsupported) ListObjectParts(ctx context.Context, bucket string, object string, uploadID string, partNumberMarker int, maxParts int, opts ObjectOptions) (lpi ListPartsInfo, err error)

ListObjectParts returns all object parts for specified object in specified bucket

func (GatewayUnsupported) ListObjectsV2 Uses

func (a GatewayUnsupported) ListObjectsV2(ctx context.Context, bucket, prefix, continuationToken, delimiter string, maxKeys int, fetchOwner bool, startAfter string) (result ListObjectsV2Info, err error)

ListObjectsV2 - Not implemented stub

func (GatewayUnsupported) NewMultipartUpload Uses

func (a GatewayUnsupported) NewMultipartUpload(ctx context.Context, bucket string, object string, opts ObjectOptions) (uploadID string, err error)

NewMultipartUpload upload object in multiple parts

func (GatewayUnsupported) NewNSLock Uses

func (a GatewayUnsupported) NewNSLock(ctx context.Context, bucket string, objects ...string) RWLocker

NewNSLock is a dummy stub for gateway.

func (GatewayUnsupported) PutObjectPart Uses

func (a GatewayUnsupported) PutObjectPart(ctx context.Context, bucket string, object string, uploadID string, partID int, data *PutObjReader, opts ObjectOptions) (pi PartInfo, err error)

PutObjectPart puts a part of object in bucket

func (GatewayUnsupported) PutObjectTag Uses

func (a GatewayUnsupported) PutObjectTag(ctx context.Context, bucket, object string, tags string) error

PutObjectTag - not implemented.

func (GatewayUnsupported) ReloadFormat Uses

func (a GatewayUnsupported) ReloadFormat(ctx context.Context, dryRun bool) error

ReloadFormat - Not implemented stub.

func (GatewayUnsupported) SetBucketLifecycle Uses

func (a GatewayUnsupported) SetBucketLifecycle(ctx context.Context, bucket string, lifecycle *lifecycle.Lifecycle) error

SetBucketLifecycle sets lifecycle on bucket

func (GatewayUnsupported) SetBucketPolicy Uses

func (a GatewayUnsupported) SetBucketPolicy(ctx context.Context, bucket string, bucketPolicy *policy.Policy) error

SetBucketPolicy sets policy on bucket

func (GatewayUnsupported) SetBucketSSEConfig Uses

func (a GatewayUnsupported) SetBucketSSEConfig(ctx context.Context, bucket string, config *bucketsse.BucketSSEConfig) error

SetBucketSSEConfig sets bucket encryption config on given bucket

func (GatewayUnsupported) Walk Uses

func (a GatewayUnsupported) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo) error

Walk - Not implemented stub

type GenerateAuthReply Uses

type GenerateAuthReply struct {
    AccessKey string `json:"accessKey"`
    SecretKey string `json:"secretKey"`
    UIVersion string `json:"uiVersion"`
}

GenerateAuthReply - reply for GenerateAuth

type GenericError Uses

type GenericError struct {
    Bucket string
    Object string
}

GenericError - generic object layer error.

type GetBucketPolicyArgs Uses

type GetBucketPolicyArgs struct {
    BucketName string `json:"bucketName"`
    Prefix     string `json:"prefix"`
}

GetBucketPolicyArgs - get bucket policy args.

func (*GetBucketPolicyArgs) ToKeyValue Uses

func (args *GetBucketPolicyArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for GetBucketPolicyArgs

type GetBucketPolicyRep Uses

type GetBucketPolicyRep struct {
    UIVersion string                     `json:"uiVersion"`
    Policy    miniogopolicy.BucketPolicy `json:"policy"`
}

GetBucketPolicyRep - get bucket policy reply.

type GetLocksResp Uses

type GetLocksResp []map[string][]lockRequesterInfo

GetLocksResp stores various info from the client for each lock that is requested.

type GetObjectInfoFn Uses

type GetObjectInfoFn func(ctx context.Context, bucket, object string, opts ObjectOptions) (objInfo ObjectInfo, err error)

GetObjectInfoFn is the signature of GetObjectInfo function.

type GetObjectReader Uses

type GetObjectReader struct {
    ObjInfo ObjectInfo
    // contains filtered or unexported fields
}

GetObjectReader is a type that wraps a reader with a lock to provide a ReadCloser interface that unlocks on Close()

func NewGetObjectReaderFromReader Uses

func NewGetObjectReaderFromReader(r io.Reader, oi ObjectInfo, pcfn CheckCopyPreconditionFn, cleanupFns ...func()) (*GetObjectReader, error)

NewGetObjectReaderFromReader sets up a GetObjectReader with a given reader. This ignores any object properties.

func (*GetObjectReader) Close Uses

func (g *GetObjectReader) Close() error

Close - calls the cleanup actions in reverse order

func (*GetObjectReader) Read Uses

func (g *GetObjectReader) Read(p []byte) (n int, err error)

Read - to implement Reader interface.

type GroupInfo Uses

type GroupInfo struct {
    Version int      `json:"version"`
    Status  string   `json:"status"`
    Members []string `json:"members"`
}

GroupInfo contains info about a group

type HTTPAPIStats Uses

type HTTPAPIStats struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

HTTPAPIStats holds statistics information about a given API in the requests.

func (*HTTPAPIStats) Dec Uses

func (stats *HTTPAPIStats) Dec(api string)

Dec increments the api stats counter.

func (*HTTPAPIStats) Inc Uses

func (stats *HTTPAPIStats) Inc(api string)

Inc increments the api stats counter.

func (*HTTPAPIStats) Load Uses

func (stats *HTTPAPIStats) Load() map[string]int

Load returns the recorded stats.

type HTTPConsoleLoggerSys Uses

type HTTPConsoleLoggerSys struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

HTTPConsoleLoggerSys holds global console logger state

func NewConsoleLogger Uses

func NewConsoleLogger(ctx context.Context) *HTTPConsoleLoggerSys

NewConsoleLogger - creates new HTTPConsoleLoggerSys with all nodes subscribed to the console logging pub sub system

func (*HTTPConsoleLoggerSys) HasLogListeners Uses

func (sys *HTTPConsoleLoggerSys) HasLogListeners() bool

HasLogListeners returns true if console log listeners are registered for this node or peers

func (*HTTPConsoleLoggerSys) Send Uses

func (sys *HTTPConsoleLoggerSys) Send(e interface{}, logKind string) error

Send log message 'e' to console and publish to console log pubsub system

func (*HTTPConsoleLoggerSys) SetNodeName Uses

func (sys *HTTPConsoleLoggerSys) SetNodeName(endpointZones EndpointZones)

SetNodeName - sets the node name if any after distributed setup has initialized

func (*HTTPConsoleLoggerSys) Subscribe Uses

func (sys *HTTPConsoleLoggerSys) Subscribe(subCh chan interface{}, doneCh chan struct{}, node string, last int, logKind string, filter func(entry interface{}) bool)

Subscribe starts console logging for this node.

type HTTPRangeSpec Uses

type HTTPRangeSpec struct {
    // Does the range spec refer to a suffix of the object?
    IsSuffixLength bool

    // Start and end offset specified in range spec
    Start, End int64
}

HTTPRangeSpec represents a range specification as supported by S3 GET object request.

Case 1: Not present -> represented by a nil RangeSpec Case 2: bytes=1-10 (absolute start and end offsets) -> RangeSpec{false, 1, 10} Case 3: bytes=10- (absolute start offset with end offset unspecified) -> RangeSpec{false, 10, -1} Case 4: bytes=-30 (suffix length specification) -> RangeSpec{true, -30, -1}

func (*HTTPRangeSpec) GetLength Uses

func (h *HTTPRangeSpec) GetLength(resourceSize int64) (rangeLength int64, err error)

GetLength - get length of range

func (*HTTPRangeSpec) GetOffsetLength Uses

func (h *HTTPRangeSpec) GetOffsetLength(resourceSize int64) (start, length int64, err error)

GetOffsetLength computes the start offset and length of the range given the size of the resource

func (*HTTPRangeSpec) String Uses

func (h *HTTPRangeSpec) String(resourceSize int64) string

String returns stringified representation of range for a particular resource size.

type HTTPStats Uses

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

HTTPStats holds statistics information about HTTP requests made by all clients

type HandlerFunc Uses

type HandlerFunc func(http.Handler) http.Handler

HandlerFunc - useful to chain different middleware http.Handler

type Help Uses

type Help struct {
    SubSys          string         `json:"subSys"`
    Description     string         `json:"description"`
    MultipleTargets bool           `json:"multipleTargets"`
    KeysHelp        config.HelpKVS `json:"keysHelp"`
}

Help - return sub-system level help

func GetHelp Uses

func GetHelp(subSys, key string, envOnly bool) (Help, error)

GetHelp - returns help for sub-sys, a key for a sub-system or all the help.

type IAMEtcdStore Uses

type IAMEtcdStore struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

IAMEtcdStore implements IAMStorageAPI

type IAMObjectStore Uses

type IAMObjectStore struct {
    // Protect assignment to objAPI
    sync.RWMutex
    // contains filtered or unexported fields
}

IAMObjectStore implements IAMStorageAPI

type IAMStorageAPI Uses

type IAMStorageAPI interface {
    // contains filtered or unexported methods
}

IAMStorageAPI defines an interface for the IAM persistence layer

type IAMSys Uses

type IAMSys struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

IAMSys - config system.

func NewIAMSys Uses

func NewIAMSys() *IAMSys

NewIAMSys - creates new config system object.

func (*IAMSys) AddUsersToGroup Uses

func (sys *IAMSys) AddUsersToGroup(group string, members []string) error

AddUsersToGroup - adds users to a group, creating the group if needed. No error if user(s) already are in the group.

func (*IAMSys) DeletePolicy Uses

func (sys *IAMSys) DeletePolicy(policyName string) error

DeletePolicy - deletes a canned policy from backend or etcd.

func (*IAMSys) DeleteUser Uses

func (sys *IAMSys) DeleteUser(accessKey string) error

DeleteUser - delete user (only for long-term users not STS users).

func (*IAMSys) EnableLDAPSys Uses

func (sys *IAMSys) EnableLDAPSys()

EnableLDAPSys - enable ldap system users type.

func (*IAMSys) GetAccountAccess Uses

func (sys *IAMSys) GetAccountAccess(accountName, bucket string) (rd, wr, o bool)

GetAccountAccess iterates over all policies documents associated to a user and returns if the user has read and/or write access to any resource.

func (*IAMSys) GetGroupDescription Uses

func (sys *IAMSys) GetGroupDescription(group string) (gd madmin.GroupDesc, err error)

GetGroupDescription - builds up group description

func (*IAMSys) GetServiceAccount Uses

func (sys *IAMSys) GetServiceAccount(ctx context.Context, serviceAccountAccessKey string) (auth.Credentials, error)

GetServiceAccount - returns the credentials of the given service account

func (*IAMSys) GetUser Uses

func (sys *IAMSys) GetUser(accessKey string) (cred auth.Credentials, ok bool)

GetUser - get user credentials

func (*IAMSys) GetUserInfo Uses

func (sys *IAMSys) GetUserInfo(name string) (u madmin.UserInfo, err error)

GetUserInfo - get info on a user.

func (*IAMSys) InfoPolicy Uses

func (sys *IAMSys) InfoPolicy(policyName string) ([]byte, error)

InfoPolicy - expands the canned policy into its JSON structure.

func (*IAMSys) Init Uses

func (sys *IAMSys) Init(objAPI ObjectLayer) error

Init - initializes config system from iam.json

func (*IAMSys) IsAllowed Uses

func (sys *IAMSys) IsAllowed(args iampolicy.Args) bool

IsAllowed - checks given policy args is allowed to continue the Rest API.

func (*IAMSys) IsAllowedSTS Uses

func (sys *IAMSys) IsAllowedSTS(args iampolicy.Args) bool

IsAllowedSTS is meant for STS based temporary credentials, which implements claims validation and verification other than applying policies.

func (*IAMSys) IsAllowedServiceAccount Uses

func (sys *IAMSys) IsAllowedServiceAccount(args iampolicy.Args, parent string) bool

IsAllowedServiceAccount - checks if the given service account is allowed to perform actions. The permission of the parent user is checked first

func (*IAMSys) IsServiceAccount Uses

func (sys *IAMSys) IsServiceAccount(name string) (bool, string, error)

IsServiceAccount - returns if given key is a service account

func (*IAMSys) IsTempUser Uses

func (sys *IAMSys) IsTempUser(name string) (bool, error)

IsTempUser - returns if given key is a temporary user.

func (*IAMSys) ListGroups Uses

func (sys *IAMSys) ListGroups() (r []string, err error)

ListGroups - lists groups.

func (*IAMSys) ListPolicies Uses

func (sys *IAMSys) ListPolicies() (map[string][]byte, error)

ListPolicies - lists all canned policies.

func (*IAMSys) ListUsers Uses

func (sys *IAMSys) ListUsers() (map[string]madmin.UserInfo, error)

ListUsers - list all users.

func (*IAMSys) Load Uses

func (sys *IAMSys) Load() error

Load - loads iam subsystem

func (*IAMSys) LoadGroup Uses

func (sys *IAMSys) LoadGroup(objAPI ObjectLayer, group string) error

LoadGroup - loads a specific group from storage, and updates the memberships cache. If the specified group does not exist in storage, it is removed from in-memory maps as well - this simplifies the implementation for group removal. This is called only via IAM notifications.

func (*IAMSys) LoadPolicy Uses

func (sys *IAMSys) LoadPolicy(objAPI ObjectLayer, policyName string) error

LoadPolicy - reloads a specific canned policy from backend disks or etcd.

func (*IAMSys) LoadPolicyMapping Uses

func (sys *IAMSys) LoadPolicyMapping(objAPI ObjectLayer, userOrGroup string, isGroup bool) error

LoadPolicyMapping - loads the mapped policy for a user or group from storage into server memory.

func (*IAMSys) LoadUser Uses

func (sys *IAMSys) LoadUser(objAPI ObjectLayer, accessKey string, userType IAMUserType) error

LoadUser - reloads a specific user from backend disks or etcd.

func (*IAMSys) NewServiceAccount Uses

func (sys *IAMSys) NewServiceAccount(ctx context.Context, parentUser, sessionPolicy string) (auth.Credentials, error)

NewServiceAccount - create a new service account

func (*IAMSys) PolicyDBGet Uses

func (sys *IAMSys) PolicyDBGet(name string, isGroup bool) ([]string, error)

PolicyDBGet - gets policy set on a user or group. Since a user may be a member of multiple groups, this function returns an array of applicable policies (each group is mapped to at most one policy).

func (*IAMSys) PolicyDBSet Uses

func (sys *IAMSys) PolicyDBSet(name, policy string, isGroup bool) error

PolicyDBSet - sets a policy for a user or group in the PolicyDB. This function applies only long-term users. For STS users, policy is set directly by called sys.policyDBSet().

func (*IAMSys) RemoveUsersFromGroup Uses

func (sys *IAMSys) RemoveUsersFromGroup(group string, members []string) error

RemoveUsersFromGroup - remove users from group. If no users are given, and the group is empty, deletes the group as well.

func (*IAMSys) SetGroupStatus Uses

func (sys *IAMSys) SetGroupStatus(group string, enabled bool) error

SetGroupStatus - enable/disabled a group

func (*IAMSys) SetPolicy Uses

func (sys *IAMSys) SetPolicy(policyName string, p iampolicy.Policy) error

SetPolicy - sets a new name policy.

func (*IAMSys) SetTempUser Uses

func (sys *IAMSys) SetTempUser(accessKey string, cred auth.Credentials, policyName string) error

SetTempUser - set temporary user credentials, these credentials have an expiry.

func (*IAMSys) SetUser Uses

func (sys *IAMSys) SetUser(accessKey string, uinfo madmin.UserInfo) error

SetUser - set user credentials and policy.

func (*IAMSys) SetUserSecretKey Uses

func (sys *IAMSys) SetUserSecretKey(accessKey string, secretKey string) error

SetUserSecretKey - sets user secret key

func (*IAMSys) SetUserStatus Uses

func (sys *IAMSys) SetUserStatus(accessKey string, status madmin.AccountStatus) error

SetUserStatus - sets current user status, supports disabled or enabled.

type IAMUserType Uses

type IAMUserType int

IAMUserType represents a user type inside MinIO server

type IncompleteBody Uses

type IncompleteBody GenericError

IncompleteBody You did not provide the number of bytes specified by the Content-Length HTTP header.

func (IncompleteBody) Error Uses

func (e IncompleteBody) Error() string

Error returns string an error formatted as the given text.

type InitiateMultipartUploadResponse Uses

type InitiateMultipartUploadResponse struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ InitiateMultipartUploadResult" json:"-"`

    Bucket   string
    Key      string
    UploadID string `xml:"UploadId"`
}

InitiateMultipartUploadResponse container for InitiateMultiPartUpload response, provides uploadID to start MultiPart upload

type Initiator Uses

type Initiator Owner

Initiator inherit from Owner struct, fields are same

type InsufficientReadQuorum Uses

type InsufficientReadQuorum struct{}

InsufficientReadQuorum storage cannot satisfy quorum for read operation.

func (InsufficientReadQuorum) Error Uses

func (e InsufficientReadQuorum) Error() string

type InsufficientWriteQuorum Uses

type InsufficientWriteQuorum struct{}

InsufficientWriteQuorum storage cannot satisfy quorum for write operation.

func (InsufficientWriteQuorum) Error Uses

func (e InsufficientWriteQuorum) Error() string

type InvalidETag Uses

type InvalidETag struct{}

InvalidETag error returned when the etag has changed on disk

func (InvalidETag) Error Uses

func (e InvalidETag) Error() string

type InvalidMarkerPrefixCombination Uses

type InvalidMarkerPrefixCombination struct {
    Marker, Prefix string
}

InvalidMarkerPrefixCombination - invalid marker and prefix combination.

func (InvalidMarkerPrefixCombination) Error Uses

func (e InvalidMarkerPrefixCombination) Error() string

type InvalidPart Uses

type InvalidPart struct {
    PartNumber int
    ExpETag    string
    GotETag    string
}

InvalidPart One or more of the specified parts could not be found

func (InvalidPart) Error Uses

func (e InvalidPart) Error() string

type InvalidRange Uses

type InvalidRange struct {
    OffsetBegin  int64
    OffsetEnd    int64
    ResourceSize int64
}

InvalidRange - invalid range typed error.

func (InvalidRange) Error Uses

func (e InvalidRange) Error() string

type InvalidUploadID Uses

type InvalidUploadID struct {
    Bucket   string
    Object   string
    UploadID string
}

InvalidUploadID invalid upload id.

func (InvalidUploadID) Error Uses

func (e InvalidUploadID) Error() string

type InvalidUploadIDKeyCombination Uses

type InvalidUploadIDKeyCombination struct {
    UploadIDMarker, KeyMarker string
}

InvalidUploadIDKeyCombination - invalid upload id and key marker combination.

func (InvalidUploadIDKeyCombination) Error Uses

func (e InvalidUploadIDKeyCombination) Error() string

type Item Uses

type Item struct {
    Path string
    Typ  os.FileMode
}

Item represents each file while walking.

type KeyValueMap Uses

type KeyValueMap map[string]string

KeyValueMap extends builtin map to support setting and getting select fields like BucketName, ObjectName, Prefix, etc.

func (KeyValueMap) Bucket Uses

func (km KeyValueMap) Bucket() string

Bucket returns the BucketName

func (KeyValueMap) Hostname Uses

func (km KeyValueMap) Hostname() string

Hostname returns the Hostname

func (KeyValueMap) Object Uses

func (km KeyValueMap) Object() string

Object returns the ObjectName

func (KeyValueMap) Objects Uses

func (km KeyValueMap) Objects() []string

Objects returns the Objects

func (KeyValueMap) Policy Uses

func (km KeyValueMap) Policy() string

Policy returns the Policy

func (KeyValueMap) Prefix Uses

func (km KeyValueMap) Prefix() string

Prefix returns the Prefix

func (*KeyValueMap) SetBucket Uses

func (km *KeyValueMap) SetBucket(bucket string)

SetBucket sets the given bucket to the KeyValueMap

func (*KeyValueMap) SetExpiry Uses

func (km *KeyValueMap) SetExpiry(expiry int64)

SetExpiry sets the expiry to the KeyValueMap

func (*KeyValueMap) SetHostname Uses

func (km *KeyValueMap) SetHostname(hostname string)

SetHostname sets the hostname to the KeyValueMap

func (*KeyValueMap) SetMarker Uses

func (km *KeyValueMap) SetMarker(marker string)

SetMarker sets the given marker to the KeyValueMap

func (*KeyValueMap) SetObject Uses

func (km *KeyValueMap) SetObject(object string)

SetObject sets the given object to the KeyValueMap

func (*KeyValueMap) SetObjects Uses

func (km *KeyValueMap) SetObjects(objects []string)

SetObjects sets the list of objects to the KeyValueMap

func (*KeyValueMap) SetPolicy Uses

func (km *KeyValueMap) SetPolicy(policy string)

SetPolicy sets the given policy to the KeyValueMap

func (*KeyValueMap) SetPrefix Uses

func (km *KeyValueMap) SetPrefix(prefix string)

SetPrefix sets the given prefix to the KeyValueMap

func (*KeyValueMap) SetUsername Uses

func (km *KeyValueMap) SetUsername(username string)

SetUsername sets the username to the KeyValueMap

func (KeyValueMap) Username Uses

func (km KeyValueMap) Username() string

Username returns the Username

type LDAPIdentityResult Uses

type LDAPIdentityResult struct {
    Credentials auth.Credentials `xml:",omitempty"`
}

LDAPIdentityResult - contains credentials for a successful AssumeRoleWithLDAPIdentity request.

type LifecycleSys Uses

type LifecycleSys struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

LifecycleSys - Bucket lifecycle subsystem.

func NewLifecycleSys Uses

func NewLifecycleSys() *LifecycleSys

NewLifecycleSys - creates new lifecycle system.

func (*LifecycleSys) Get Uses

func (sys *LifecycleSys) Get(bucketName string) (lc lifecycle.Lifecycle, ok bool)

Get - gets lifecycle config associated to a given bucket name.

func (*LifecycleSys) Init Uses

func (sys *LifecycleSys) Init(buckets []BucketInfo, objAPI ObjectLayer) error

Init - initializes lifecycle system from lifecycle.xml of all buckets.

func (*LifecycleSys) Remove Uses

func (sys *LifecycleSys) Remove(bucketName string)

Remove - removes lifecycle config for given bucket name.

func (*LifecycleSys) Set Uses

func (sys *LifecycleSys) Set(bucketName string, lifecycle lifecycle.Lifecycle)

Set - sets lifecycle config to given bucket name.

type ListAllBucketPoliciesArgs Uses

type ListAllBucketPoliciesArgs struct {
    BucketName string `json:"bucketName"`
}

ListAllBucketPoliciesArgs - get all bucket policies.

func (*ListAllBucketPoliciesArgs) ToKeyValue Uses

func (args *ListAllBucketPoliciesArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for ListAllBucketPoliciesArgs

type ListAllBucketPoliciesRep Uses

type ListAllBucketPoliciesRep struct {
    UIVersion string               `json:"uiVersion"`
    Policies  []BucketAccessPolicy `json:"policies"`
}

ListAllBucketPoliciesRep - get all bucket policy reply.

type ListBucketsRep Uses

type ListBucketsRep struct {
    Buckets   []WebBucketInfo `json:"buckets"`
    UIVersion string          `json:"uiVersion"`
}

ListBucketsRep - list buckets response

type ListBucketsResponse Uses

type ListBucketsResponse struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListAllMyBucketsResult" json:"-"`

    Owner Owner

    // Container for one or more buckets.
    Buckets struct {
        Buckets []Bucket `xml:"Bucket"`
    }   // Buckets are nested
}

ListBucketsResponse - format for list buckets response

type ListDirFunc Uses

type ListDirFunc func(bucket, prefixDir, prefixEntry string) (emptyDir bool, entries []string)

ListDirFunc - "listDir" function of type listDirFunc returned by listDirFactory() - explained below.

type ListMultipartUploadsResponse Uses

type ListMultipartUploadsResponse struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListMultipartUploadsResult" json:"-"`

    Bucket             string
    KeyMarker          string
    UploadIDMarker     string `xml:"UploadIdMarker"`
    NextKeyMarker      string
    NextUploadIDMarker string `xml:"NextUploadIdMarker"`
    Delimiter          string
    Prefix             string
    EncodingType       string `xml:"EncodingType,omitempty"`
    MaxUploads         int
    IsTruncated        bool

    // List of pending uploads.
    Uploads []Upload `xml:"Upload"`

    // Delimed common prefixes.
    CommonPrefixes []CommonPrefix
}

ListMultipartUploadsResponse - format for list multipart uploads response.

type ListMultipartsInfo Uses

type ListMultipartsInfo struct {
    // Together with upload-id-marker, this parameter specifies the multipart upload
    // after which listing should begin.
    KeyMarker string

    // Together with key-marker, specifies the multipart upload after which listing
    // should begin. If key-marker is not specified, the upload-id-marker parameter
    // is ignored.
    UploadIDMarker string

    // When a list is truncated, this element specifies the value that should be
    // used for the key-marker request parameter in a subsequent request.
    NextKeyMarker string

    // When a list is truncated, this element specifies the value that should be
    // used for the upload-id-marker request parameter in a subsequent request.
    NextUploadIDMarker string

    // Maximum number of multipart uploads that could have been included in the
    // response.
    MaxUploads int

    // Indicates whether the returned list of multipart uploads is truncated. A
    // value of true indicates that the list was truncated. The list can be truncated
    // if the number of multipart uploads exceeds the limit allowed or specified
    // by max uploads.
    IsTruncated bool

    // List of all pending uploads.
    Uploads []MultipartInfo

    // When a prefix is provided in the request, The result contains only keys
    // starting with the specified prefix.
    Prefix string

    // A character used to truncate the object prefixes.
    // NOTE: only supported delimiter is '/'.
    Delimiter string

    // CommonPrefixes contains all (if there are any) keys between Prefix and the
    // next occurrence of the string specified by delimiter.
    CommonPrefixes []string

    EncodingType string // Not supported yet.
}

ListMultipartsInfo - represnets bucket resources for incomplete multipart uploads.

func FromMinioClientListMultipartsInfo Uses

func FromMinioClientListMultipartsInfo(lmur minio.ListMultipartUploadsResult) ListMultipartsInfo

FromMinioClientListMultipartsInfo converts minio ListMultipartUploadsResult to ListMultipartsInfo

func (ListMultipartsInfo) Lookup Uses

func (lm ListMultipartsInfo) Lookup(uploadID string) bool

Lookup - returns if uploadID is valid

type ListObjectsArgs Uses

type ListObjectsArgs struct {
    BucketName string `json:"bucketName"`
    Prefix     string `json:"prefix"`
    Marker     string `json:"marker"`
}

ListObjectsArgs - list object args.

func (*ListObjectsArgs) ToKeyValue Uses

func (args *ListObjectsArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for ListObjectsArgs

type ListObjectsInfo Uses

type ListObjectsInfo struct {
    // Indicates whether the returned list objects response is truncated. A
    // value of true indicates that the list was truncated. The list can be truncated
    // if the number of objects exceeds the limit allowed or specified
    // by max keys.
    IsTruncated bool

    // When response is truncated (the IsTruncated element value in the response is true),
    // you can use the key name in this field as marker in the subsequent
    // request to get next set of objects.
    //
    // NOTE: AWS S3 returns NextMarker only if you have delimiter request parameter specified,
    //       MinIO always returns NextMarker.
    NextMarker string

    // List of objects info for this request.
    Objects []ObjectInfo

    // List of prefixes for this request.
    Prefixes []string
}

ListObjectsInfo - container for list objects.

func FromMinioClientListBucketResult Uses

func FromMinioClientListBucketResult(bucket string, result minio.ListBucketResult) ListObjectsInfo

FromMinioClientListBucketResult converts minio ListBucketResult to ListObjectsInfo

type ListObjectsRep Uses

type ListObjectsRep struct {
    Objects   []WebObjectInfo `json:"objects"`
    Writable  bool            `json:"writable"` // Used by client to show "upload file" button.
    UIVersion string          `json:"uiVersion"`
}

ListObjectsRep - list objects response.

type ListObjectsResponse Uses

type ListObjectsResponse struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListBucketResult" json:"-"`

    Name   string
    Prefix string
    Marker string

    // When response is truncated (the IsTruncated element value in the response
    // is true), you can use the key name in this field as marker in the subsequent
    // request to get next set of objects. Server lists objects in alphabetical
    // order Note: This element is returned only if you have delimiter request parameter
    // specified. If response does not include the NextMaker and it is truncated,
    // you can use the value of the last Key in the response as the marker in the
    // subsequent request to get the next set of object keys.
    NextMarker string `xml:"NextMarker,omitempty"`

    MaxKeys   int
    Delimiter string
    // A flag that indicates whether or not ListObjects returned all of the results
    // that satisfied the search criteria.
    IsTruncated bool

    Contents       []Object
    CommonPrefixes []CommonPrefix

    // Encoding type used to encode object keys in the response.
    EncodingType string `xml:"EncodingType,omitempty"`
}

ListObjectsResponse - format for list objects response.

type ListObjectsV2Info Uses

type ListObjectsV2Info struct {
    // Indicates whether the returned list objects response is truncated. A
    // value of true indicates that the list was truncated. The list can be truncated
    // if the number of objects exceeds the limit allowed or specified
    // by max keys.
    IsTruncated bool

    // When response is truncated (the IsTruncated element value in the response
    // is true), you can use the key name in this field as marker in the subsequent
    // request to get next set of objects.
    //
    // NOTE: This element is returned only if you have delimiter request parameter
    // specified.
    ContinuationToken     string
    NextContinuationToken string

    // List of objects info for this request.
    Objects []ObjectInfo

    // List of prefixes for this request.
    Prefixes []string
}

ListObjectsV2Info - container for list objects version 2.

func FromMinioClientListBucketResultToV2Info Uses

func FromMinioClientListBucketResultToV2Info(bucket string, result minio.ListBucketResult) ListObjectsV2Info

FromMinioClientListBucketResultToV2Info converts minio ListBucketResult to ListObjectsV2Info

func FromMinioClientListBucketV2Result Uses

func FromMinioClientListBucketV2Result(bucket string, result minio.ListBucketV2Result) ListObjectsV2Info

FromMinioClientListBucketV2Result converts minio ListBucketResult to ListObjectsInfo

type ListObjectsV2Response Uses

type ListObjectsV2Response struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListBucketResult" json:"-"`

    Name       string
    Prefix     string
    StartAfter string `xml:"StartAfter,omitempty"`
    // When response is truncated (the IsTruncated element value in the response
    // is true), you can use the key name in this field as marker in the subsequent
    // request to get next set of objects. Server lists objects in alphabetical
    // order Note: This element is returned only if you have delimiter request parameter
    // specified. If response does not include the NextMaker and it is truncated,
    // you can use the value of the last Key in the response as the marker in the
    // subsequent request to get the next set of object keys.
    ContinuationToken     string `xml:"ContinuationToken,omitempty"`
    NextContinuationToken string `xml:"NextContinuationToken,omitempty"`

    KeyCount  int
    MaxKeys   int
    Delimiter string
    // A flag that indicates whether or not ListObjects returned all of the results
    // that satisfied the search criteria.
    IsTruncated bool

    Contents       []Object
    CommonPrefixes []CommonPrefix

    // Encoding type used to encode object keys in the response.
    EncodingType string `xml:"EncodingType,omitempty"`
}

ListObjectsV2Response - format for list objects response.

type ListPartsInfo Uses

type ListPartsInfo struct {
    // Name of the bucket.
    Bucket string

    // Name of the object.
    Object string

    // Upload ID identifying the multipart upload whose parts are being listed.
    UploadID string

    // The class of storage used to store the object.
    StorageClass string

    // Part number after which listing begins.
    PartNumberMarker int

    // When a list is truncated, this element specifies the last part in the list,
    // as well as the value to use for the part-number-marker request parameter
    // in a subsequent request.
    NextPartNumberMarker int

    // Maximum number of parts that were allowed in the response.
    MaxParts int

    // Indicates whether the returned list of parts is truncated.
    IsTruncated bool

    // List of all parts.
    Parts []PartInfo

    // Any metadata set during InitMultipartUpload, including encryption headers.
    UserDefined map[string]string

    EncodingType string // Not supported yet.
}

ListPartsInfo - represents list of all parts.

func FromMinioClientListPartsInfo Uses

func FromMinioClientListPartsInfo(lopr minio.ListObjectPartsResult) ListPartsInfo

FromMinioClientListPartsInfo converts minio ListObjectPartsResult to ListPartsInfo

type ListPartsResponse Uses

type ListPartsResponse struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListPartsResult" json:"-"`

    Bucket   string
    Key      string
    UploadID string `xml:"UploadId"`

    Initiator Initiator
    Owner     Owner

    // The class of storage used to store the object.
    StorageClass string

    PartNumberMarker     int
    NextPartNumberMarker int
    MaxParts             int
    IsTruncated          bool

    // List of parts.
    Parts []Part `xml:"Part"`
}

ListPartsResponse - format for list parts response.

type ListVersionsResponse Uses

type ListVersionsResponse struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListVersionsResult" json:"-"`

    Name      string
    Prefix    string
    KeyMarker string

    // When response is truncated (the IsTruncated element value in the response
    // is true), you can use the key name in this field as marker in the subsequent
    // request to get next set of objects. Server lists objects in alphabetical
    // order Note: This element is returned only if you have delimiter request parameter
    // specified. If response does not include the NextMaker and it is truncated,
    // you can use the value of the last Key in the response as the marker in the
    // subsequent request to get the next set of object keys.
    NextKeyMarker string `xml:"NextKeyMarker,omitempty"`

    // When the number of responses exceeds the value of MaxKeys,
    // NextVersionIdMarker specifies the first object version not
    // returned that satisfies the search criteria. Use this value
    // for the version-id-marker request parameter in a subsequent request.
    NextVersionIDMarker string `xml:"NextVersionIdMarker"`

    // Marks the last version of the Key returned in a truncated response.
    VersionIDMarker string `xml:"VersionIdMarker"`

    MaxKeys   int
    Delimiter string
    // A flag that indicates whether or not ListObjects returned all of the results
    // that satisfied the search criteria.
    IsTruncated bool

    CommonPrefixes []CommonPrefix
    Versions       []ObjectVersion

    // Encoding type used to encode object keys in the response.
    EncodingType string `xml:"EncodingType,omitempty"`
}

ListVersionsResponse - format for list bucket versions response.

type LocationResponse Uses

type LocationResponse struct {
    XMLName  xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LocationConstraint" json:"-"`
    Location string   `xml:",chardata"`
}

LocationResponse - format for location response.

type LockType Uses

type LockType int

LockType represents required locking for ObjectLayer operations

type LoginArgs Uses

type LoginArgs struct {
    Username string `json:"username" form:"username"`
    Password string `json:"password" form:"password"`
}

LoginArgs - login arguments.

func (*LoginArgs) ToKeyValue Uses

func (args *LoginArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for LoginArgs

type LoginRep Uses

type LoginRep struct {
    Token     string `json:"token"`
    UIVersion string `json:"uiVersion"`
}

LoginRep - login reply.

type LoginSTSArgs Uses

type LoginSTSArgs struct {
    Token string `json:"token" form:"token"`
}

LoginSTSArgs - login arguments.

func (*LoginSTSArgs) ToKeyValue Uses

func (args *LoginSTSArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for LoginSTSArgs

type LoginSTSRep Uses

type LoginSTSRep struct {
    Token     string `json:"token"`
    UIVersion string `json:"uiVersion"`
}

LoginSTSRep - login reply.

type MakeBucketArgs Uses

type MakeBucketArgs struct {
    BucketName string `json:"bucketName"`
}

MakeBucketArgs - make bucket args.

func (*MakeBucketArgs) ToKeyValue Uses

func (args *MakeBucketArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for MakeBucketArgs

type MalformedUploadID Uses

type MalformedUploadID struct {
    UploadID string
}

MalformedUploadID malformed upload id.

func (MalformedUploadID) Error Uses

func (e MalformedUploadID) Error() string

type MappedPolicy Uses

type MappedPolicy struct {
    Version int    `json:"version"`
    Policy  string `json:"policy"`
}

MappedPolicy represents a policy name mapped to a user or group

type MergeWalkPool Uses

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

MergeWalkPool - pool of mergeWalk go routines. A mergeWalk is added to the pool by Set() and removed either by doing a Release() or if the concerned timer goes off. mergeWalkPool's purpose is to maintain active mergeWalk go-routines in a map so that it can be looked up across related list calls.

func NewMergeWalkPool Uses

func NewMergeWalkPool(timeout time.Duration) *MergeWalkPool

NewMergeWalkPool - initialize new tree walk pool.

func (MergeWalkPool) Release Uses

func (t MergeWalkPool) Release(params listParams) ([]FileInfoCh, chan struct{})

Release - selects a mergeWalk from the pool based on the input listParams, removes it from the pool, and returns the MergeWalkResult channel. Returns nil if listParams does not have an asccociated mergeWalk.

func (MergeWalkPool) Set Uses

func (t MergeWalkPool) Set(params listParams, resultChs []FileInfoCh, endWalkCh chan struct{})

Set - adds a mergeWalk to the mergeWalkPool. Also starts a timer go-routine that ends when: 1) time.After() expires after t.timeOut seconds.

The expiration is needed so that the mergeWalk go-routine resources are freed after a timeout
if the S3 client does only partial listing of objects.

2) Relase() signals the timer go-routine to end on endTimerCh.

During listing the timer should not timeout and end the mergeWalk go-routine, hence the
timer go-routine should be ended.

type Metrics Uses

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

Metrics - represents bytes served from backend only implemented for S3 Gateway

func NewMetrics Uses

func NewMetrics() *Metrics

NewMetrics - Prepare new Metrics structure

func (*Metrics) GetBytesReceived Uses

func (s *Metrics) GetBytesReceived() uint64

GetBytesReceived - Get total bytes received from gateway backend

func (*Metrics) GetBytesSent Uses

func (s *Metrics) GetBytesSent() uint64

GetBytesSent - Get total bytes received from gateway backend

func (*Metrics) GetRequests Uses

func (s *Metrics) GetRequests() RequestStats

GetRequests - Get total number of Get & Headrequests sent to gateway backend

func (*Metrics) IncBytesReceived Uses

func (s *Metrics) IncBytesReceived(n uint64)

IncBytesReceived - Increase total bytes received from gateway backend

func (*Metrics) IncBytesSent Uses

func (s *Metrics) IncBytesSent(n uint64)

IncBytesSent - Increase total bytes sent to gateway backend

func (*Metrics) IncRequests Uses

func (s *Metrics) IncRequests(method string)

IncRequests - Increase request count sent to gateway backend by 1

type MetricsTransport Uses

type MetricsTransport struct {
    Transport *http.Transport
    Metrics   *Metrics
}

MetricsTransport is a custom wrapper around Transport to track metrics

func (MetricsTransport) RoundTrip Uses

func (m MetricsTransport) RoundTrip(r *http.Request) (*http.Response, error)

RoundTrip implements the RoundTrip method for MetricsTransport

type MultipartInfo Uses

type MultipartInfo struct {
    // Object name for which the multipart upload was initiated.
    Object string

    // Unique identifier for this multipart upload.
    UploadID string

    // Date and time at which the multipart upload was initiated.
    Initiated time.Time

    StorageClass string // Not supported yet.
}

MultipartInfo - represents metadata in progress multipart upload.

type NotImplemented Uses

type NotImplemented struct{}

NotImplemented If a feature is not implemented

func (NotImplemented) Error Uses

func (e NotImplemented) Error() string

type NotificationGroup Uses

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

A NotificationGroup is a collection of goroutines working on subtasks that are part of the same overall task.

A zero NotificationGroup is valid and does not cancel on error.

func WithNPeers Uses

func WithNPeers(nerrs int) *NotificationGroup

WithNPeers returns a new NotificationGroup with length of errs slice upto nerrs, upon Wait() errors are returned collected from all tasks.

func (*NotificationGroup) Go Uses

func (g *NotificationGroup) Go(ctx context.Context, f func() error, index int, addr xnet.Host)

Go calls the given function in a new goroutine.

The first call to return a non-nil error will be collected in errs slice and returned by Wait().

func (*NotificationGroup) Wait Uses

func (g *NotificationGroup) Wait() []NotificationPeerErr

Wait blocks until all function calls from the Go method have returned, then returns the slice of errors from all function calls.

type NotificationPeerErr Uses

type NotificationPeerErr struct {
    Host xnet.Host // Remote host on which the rpc call was initiated
    Err  error     // Error returned by the remote peer for an rpc call
}

NotificationPeerErr returns error associated for a remote peer.

type NotificationSys Uses

type NotificationSys struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

NotificationSys - notification system.

func NewNotificationSys Uses

func NewNotificationSys(endpoints EndpointZones) *NotificationSys

NewNotificationSys - creates new notification system object.

func (*NotificationSys) AddRemoteTarget Uses

func (sys *NotificationSys) AddRemoteTarget(bucketName string, target event.Target, rulesMap event.RulesMap) error

AddRemoteTarget - adds event rules map, HTTP/PeerRPC client target to bucket name.

func (*NotificationSys) AddRulesMap Uses

func (sys *NotificationSys) AddRulesMap(bucketName string, rulesMap event.RulesMap)

AddRulesMap - adds rules map for bucket name.

func (*NotificationSys) BackgroundHealStatus Uses

func (sys *NotificationSys) BackgroundHealStatus() []madmin.BgHealState

BackgroundHealStatus - returns background heal status of all peers

func (*NotificationSys) CPUInfo Uses

func (sys *NotificationSys) CPUInfo() []madmin.ServerCPUHardwareInfo

CPUInfo - CPU Hardware info

func (*NotificationSys) CPULoadInfo Uses

func (sys *NotificationSys) CPULoadInfo() []ServerCPULoadInfo

CPULoadInfo - CPU utilization information

func (*NotificationSys) CPUOBDInfo Uses

func (sys *NotificationSys) CPUOBDInfo(ctx context.Context) []madmin.ServerCPUOBDInfo

CPUOBDInfo - CPU OBD information

func (*NotificationSys) CollectNetPerfInfo Uses

func (sys *NotificationSys) CollectNetPerfInfo(size int64) map[string][]ServerNetReadPerfInfo

CollectNetPerfInfo - Collect network performance information of all peers.

func (*NotificationSys) ConfiguredTargetIDs Uses

func (sys *NotificationSys) ConfiguredTargetIDs() []event.TargetID

ConfiguredTargetIDs - returns list of configured target id's

func (*NotificationSys) DeleteBucket Uses

func (sys *NotificationSys) DeleteBucket(ctx context.Context, bucketName string)

DeleteBucket - calls DeleteBucket RPC call on all peers.

func (*NotificationSys) DeletePolicy Uses

func (sys *NotificationSys) DeletePolicy(policyName string) []NotificationPeerErr

DeletePolicy - deletes policy across all peers.

func (*NotificationSys) DeleteUser Uses

func (sys *NotificationSys) DeleteUser(accessKey string) []NotificationPeerErr

DeleteUser - deletes a specific user across all peers

func (*NotificationSys) DiskHwOBDInfo Uses

func (sys *NotificationSys) DiskHwOBDInfo(ctx context.Context) []madmin.ServerDiskHwOBDInfo

DiskHwOBDInfo - Disk HW OBD information

func (*NotificationSys) DispatchNetOBDInfo Uses

func (sys *NotificationSys) DispatchNetOBDInfo(ctx context.Context) []madmin.ServerNetOBDInfo

DispatchNetOBDInfo - Net OBD information from other nodes

func (*NotificationSys) DownloadProfilingData Uses

func (sys *NotificationSys) DownloadProfilingData(ctx context.Context, writer io.Writer) bool

DownloadProfilingData - download profiling data from all remote peers.

func (*NotificationSys) DriveOBDInfo Uses

func (sys *NotificationSys) DriveOBDInfo(ctx context.Context) []madmin.ServerDrivesOBDInfo

DriveOBDInfo - Drive OBD information

func (*NotificationSys) DrivePerfInfo Uses

func (sys *NotificationSys) DrivePerfInfo(size int64) []madmin.ServerDrivesPerfInfo

DrivePerfInfo - Drive speed (read and write) information

func (*NotificationSys) GetARNList Uses

func (sys *NotificationSys) GetARNList() []string

GetARNList - returns available ARNs.

func (*NotificationSys) GetLocks Uses

func (sys *NotificationSys) GetLocks(ctx context.Context) []*PeerLocks

GetLocks - makes GetLocks RPC call on all peers.

func (*NotificationSys) Init Uses

func (sys *NotificationSys) Init(buckets []BucketInfo, objAPI ObjectLayer) error

Init - initializes notification system from notification.xml and listener.json of all buckets.

func (*NotificationSys) LoadGroup Uses

func (sys *NotificationSys) LoadGroup(group string) []NotificationPeerErr

LoadGroup - loads a specific group on all peers.

func (*NotificationSys) LoadPolicy Uses

func (sys *NotificationSys) LoadPolicy(policyName string) []NotificationPeerErr

LoadPolicy - reloads a specific modified policy across all peers

func (*NotificationSys) LoadPolicyMapping Uses

func (sys *NotificationSys) LoadPolicyMapping(userOrGroup string, isGroup bool) []NotificationPeerErr

LoadPolicyMapping - reloads a policy mapping across all peers

func (*NotificationSys) LoadUser Uses

func (sys *NotificationSys) LoadUser(accessKey string, temp bool) []NotificationPeerErr

LoadUser - reloads a specific user across all peers

func (*NotificationSys) LoadUsers Uses

func (sys *NotificationSys) LoadUsers() []NotificationPeerErr

LoadUsers - calls LoadUsers RPC call on all peers.

func (*NotificationSys) MemOBDInfo Uses

func (sys *NotificationSys) MemOBDInfo(ctx context.Context) []madmin.ServerMemOBDInfo

MemOBDInfo - Mem OBD information

func (*NotificationSys) MemUsageInfo Uses

func (sys *NotificationSys) MemUsageInfo() []ServerMemUsageInfo

MemUsageInfo - Mem utilization information

func (*NotificationSys) NetOBDInfo Uses

func (sys *NotificationSys) NetOBDInfo(ctx context.Context) madmin.ServerNetOBDInfo

NetOBDInfo - Net OBD information

func (*NotificationSys) NetOBDParallelInfo Uses

func (sys *NotificationSys) NetOBDParallelInfo(ctx context.Context) madmin.ServerNetOBDInfo

NetOBDParallelInfo - Performs NetOBD tests

func (*NotificationSys) NetReadPerfInfo Uses

func (sys *NotificationSys) NetReadPerfInfo(size int64) []ServerNetReadPerfInfo

NetReadPerfInfo - Network read performance information.

func (*NotificationSys) NetworkInfo Uses

func (sys *NotificationSys) NetworkInfo() []madmin.ServerNetworkHardwareInfo

NetworkInfo - Network Hardware info

func (*NotificationSys) OsOBDInfo Uses

func (sys *NotificationSys) OsOBDInfo(ctx context.Context) []madmin.ServerOsOBDInfo

OsOBDInfo - Os OBD information

func (*NotificationSys) ProcOBDInfo Uses

func (sys *NotificationSys) ProcOBDInfo(ctx context.Context) []madmin.ServerProcOBDInfo

ProcOBDInfo - Process OBD information

func (*NotificationSys) PutBucketNotification Uses

func (sys *NotificationSys) PutBucketNotification(ctx context.Context, bucketName string, rulesMap event.RulesMap)

PutBucketNotification - calls PutBucketNotification RPC call on all peers.

func (*NotificationSys) PutBucketObjectLockConfig Uses

func (sys *NotificationSys) PutBucketObjectLockConfig(ctx context.Context, bucketName string, retention objectlock.Retention)

PutBucketObjectLockConfig - put bucket object lock configuration to all peers.

func (*NotificationSys) ReloadFormat Uses

func (sys *NotificationSys) ReloadFormat(dryRun bool) []NotificationPeerErr

ReloadFormat - calls ReloadFormat REST call on all peers.

func (*NotificationSys) RemoteTargetExist Uses

func (sys *NotificationSys) RemoteTargetExist(bucketName string, targetID event.TargetID) bool

RemoteTargetExist - checks whether given target ID is a HTTP/PeerRPC client target or not.

func (*NotificationSys) RemoveAllRemoteTargets Uses

func (sys *NotificationSys) RemoveAllRemoteTargets()

RemoveAllRemoteTargets - closes and removes all HTTP/PeerRPC client targets.

func (*NotificationSys) RemoveBucketLifecycle Uses

func (sys *NotificationSys) RemoveBucketLifecycle(ctx context.Context, bucketName string)

RemoveBucketLifecycle - calls RemoveLifecycle on all peers.

func (*NotificationSys) RemoveBucketObjectLockConfig Uses

func (sys *NotificationSys) RemoveBucketObjectLockConfig(ctx context.Context, bucketName string)

RemoveBucketObjectLockConfig - calls RemoveBucketObjectLockConfig RPC call on all peers.

func (*NotificationSys) RemoveBucketPolicy Uses

func (sys *NotificationSys) RemoveBucketPolicy(ctx context.Context, bucketName string)

RemoveBucketPolicy - calls RemoveBucketPolicy RPC call on all peers.

func (*NotificationSys) RemoveBucketSSEConfig Uses

func (sys *NotificationSys) RemoveBucketSSEConfig(ctx context.Context, bucketName string)

RemoveBucketSSEConfig - calls RemoveBucketSSEConfig on all peers.

func (*NotificationSys) RemoveNotification Uses

func (sys *NotificationSys) RemoveNotification(bucketName string)

RemoveNotification - removes all notification configuration for bucket name.

func (*NotificationSys) RemoveRemoteTarget Uses

func (sys *NotificationSys) RemoveRemoteTarget(bucketName string, targetID event.TargetID)

RemoveRemoteTarget - closes and removes target by target ID.

func (*NotificationSys) RemoveRulesMap Uses

func (sys *NotificationSys) RemoveRulesMap(bucketName string, rulesMap event.RulesMap)

RemoveRulesMap - removes rules map for bucket name.

func (*NotificationSys) Send Uses

func (sys *NotificationSys) Send(args eventArgs) []event.TargetIDErr

Send - sends event data to all matching targets.

func (*NotificationSys) ServerInfo Uses

func (sys *NotificationSys) ServerInfo() []madmin.ServerProperties

ServerInfo - calls ServerInfo RPC call on all peers.

func (*NotificationSys) ServerUpdate Uses

func (sys *NotificationSys) ServerUpdate(updateURL, sha256Hex string, latestReleaseTime time.Time) []NotificationPeerErr

ServerUpdate - updates remote peers.

func (*NotificationSys) SetBucketLifecycle Uses

func (sys *NotificationSys) SetBucketLifecycle(ctx context.Context, bucketName string,
    bucketLifecycle *lifecycle.Lifecycle)

SetBucketLifecycle - calls SetBucketLifecycle on all peers.

func (*NotificationSys) SetBucketPolicy Uses

func (sys *NotificationSys) SetBucketPolicy(ctx context.Context, bucketName string, bucketPolicy *policy.Policy)

SetBucketPolicy - calls SetBucketPolicy RPC call on all peers.

func (*NotificationSys) SetBucketSSEConfig Uses

func (sys *NotificationSys) SetBucketSSEConfig(ctx context.Context, bucketName string,
    encConfig *bucketsse.BucketSSEConfig)

SetBucketSSEConfig - calls SetBucketSSEConfig on all peers.

func (*NotificationSys) SignalService Uses

func (sys *NotificationSys) SignalService(sig serviceSignal) []NotificationPeerErr

SignalService - calls signal service RPC call on all peers.

func (*NotificationSys) StartProfiling Uses

func (sys *NotificationSys) StartProfiling(profiler string) []NotificationPeerErr

StartProfiling - start profiling on remote peers, by initiating a remote RPC.

type ObjReaderFn Uses

type ObjReaderFn func(inputReader io.Reader, h http.Header, pcfn CheckCopyPreconditionFn, cleanupFns ...func()) (r *GetObjectReader, err error)

ObjReaderFn is a function type that takes a reader and returns GetObjectReader and an error. Request headers are passed to provide encryption parameters. cleanupFns allow cleanup funcs to be registered for calling after usage of the reader.

func NewGetObjectReader Uses

func NewGetObjectReader(rs *HTTPRangeSpec, oi ObjectInfo, pcfn CheckCopyPreconditionFn, cleanUpFns ...func()) (
    fn ObjReaderFn, off, length int64, err error)

NewGetObjectReader creates a new GetObjectReader. The cleanUpFns are called on Close() in reverse order as passed here. NOTE: It is assumed that clean up functions do not panic (otherwise, they may not all run!).

type Object Uses

type Object struct {
    Key          string
    LastModified string // time string of format "2006-01-02T15:04:05.000Z"
    ETag         string
    Size         int64

    // Owner of the object.
    Owner Owner

    // The class of storage used to store the object.
    StorageClass string

    // UserMetadata user-defined metadata
    UserMetadata StringMap `xml:"UserMetadata,omitempty"`
}

Object container for object metadata

type ObjectAlreadyExists Uses

type ObjectAlreadyExists GenericError

ObjectAlreadyExists object already exists.

func (ObjectAlreadyExists) Error Uses

func (e ObjectAlreadyExists) Error() string

type ObjectExistsAsDirectory Uses

type ObjectExistsAsDirectory GenericError

ObjectExistsAsDirectory object already exists as a directory.

func (ObjectExistsAsDirectory) Error Uses

func (e ObjectExistsAsDirectory) Error() string

type ObjectIdentifier Uses

type ObjectIdentifier struct {
    ObjectName string `xml:"Key"`
}

ObjectIdentifier carries key name for the object to delete.

type ObjectInfo Uses

type ObjectInfo struct {
    // Name of the bucket.
    Bucket string

    // Name of the object.
    Name string

    // Date and time when the object was last modified.
    ModTime time.Time

    // Total object size.
    Size int64

    // IsDir indicates if the object is prefix.
    IsDir bool

    // Hex encoded unique entity tag of the object.
    ETag string

    // A standard MIME type describing the format of the object.
    ContentType string

    // Specifies what content encodings have been applied to the object and thus
    // what decoding mechanisms must be applied to obtain the object referenced
    // by the Content-Type header field.
    ContentEncoding string

    // Date and time at which the object is no longer able to be cached
    Expires time.Time

    // CacheStatus sets status of whether this is a cache hit/miss
    CacheStatus CacheStatusType
    // CacheLookupStatus sets whether a cacheable response is present in the cache
    CacheLookupStatus CacheStatusType

    // Specify object storage class
    StorageClass string

    // User-Defined metadata
    UserDefined map[string]string

    // User-Defined object tags
    UserTags string

    // List of individual parts, maximum size of upto 10,000
    Parts []ObjectPartInfo `json:"-"`

    // Implements writer and reader used by CopyObject API
    Writer       io.WriteCloser `json:"-"`
    Reader       *hash.Reader   `json:"-"`
    PutObjReader *PutObjReader  `json:"-"`

    // Date and time when the object was last accessed.
    AccTime time.Time
    // contains filtered or unexported fields
}

ObjectInfo - represents object metadata.

func FromMinioClientObjectInfo Uses

func FromMinioClientObjectInfo(bucket string, oi minio.ObjectInfo) ObjectInfo

FromMinioClientObjectInfo converts minio ObjectInfo to gateway ObjectInfo

func (*ObjectInfo) DecryptedSize Uses

func (o *ObjectInfo) DecryptedSize() (int64, error)

DecryptedSize returns the size of the object after decryption in bytes. It returns an error if the object is not encrypted or marked as encrypted but has an invalid size.

func (*ObjectInfo) EncryptedSize Uses

func (o *ObjectInfo) EncryptedSize() int64

EncryptedSize returns the size of the object after encryption. An encrypted object is always larger than a plain object except for zero size objects.

func (ObjectInfo) GetActualSize Uses

func (o ObjectInfo) GetActualSize() int64

GetActualSize - read the decompressed size from the meta json.

func (*ObjectInfo) GetDecryptedRange Uses

func (o *ObjectInfo) GetDecryptedRange(rs *HTTPRangeSpec) (encOff, encLength, skipLen int64, seqNumber uint32, partStart int, err error)

GetDecryptedRange - To decrypt the range (off, length) of the decrypted object stream, we need to read the range (encOff, encLength) of the encrypted object stream to decrypt it, and compute skipLen, the number of bytes to skip in the beginning of the encrypted range.

In addition we also compute the object part number for where the requested range starts, along with the DARE sequence number within that part. For single part objects, the partStart will be 0.

func (ObjectInfo) IsCacheable Uses

func (o ObjectInfo) IsCacheable() bool

IsCacheable returns if the object should be saved in the cache.

func (ObjectInfo) IsCompressed Uses

func (o ObjectInfo) IsCompressed() bool

IsCompressed returns true if the object is marked as compressed.

func (ObjectInfo) IsCompressedOK Uses

func (o ObjectInfo) IsCompressedOK() (bool, error)

IsCompressedOK returns whether the object is compressed and can be decompressed.

type ObjectLayer Uses

type ObjectLayer interface {
    // Locking operations on object.
    NewNSLock(ctx context.Context, bucket string, objects ...string) RWLocker

    // Storage operations.
    Shutdown(context.Context) error
    CrawlAndGetDataUsage(ctx context.Context, updates chan<- DataUsageInfo) error
    StorageInfo(ctx context.Context, local bool) StorageInfo // local queries only local disks

    // Bucket operations.
    MakeBucketWithLocation(ctx context.Context, bucket string, location string) error
    GetBucketInfo(ctx context.Context, bucket string) (bucketInfo BucketInfo, err error)
    ListBuckets(ctx context.Context) (buckets []BucketInfo, err error)
    DeleteBucket(ctx context.Context, bucket string, forceDelete bool) error
    ListObjects(ctx context.Context, bucket, prefix, marker, delimiter string, maxKeys int) (result ListObjectsInfo, err error)
    ListObjectsV2(ctx context.Context, bucket, prefix, continuationToken, delimiter string, maxKeys int, fetchOwner bool, startAfter string) (result ListObjectsV2Info, err error)
    Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo) error

    // GetObjectNInfo returns a GetObjectReader that satisfies the
    // ReadCloser interface. The Close method unlocks the object
    // after reading, so it must always be called after usage.
    //
    // IMPORTANTLY, when implementations return err != nil, this
    // function MUST NOT return a non-nil ReadCloser.
    GetObjectNInfo(ctx context.Context, bucket, object string, rs *HTTPRangeSpec, h http.Header, lockType LockType, opts ObjectOptions) (reader *GetObjectReader, err error)
    GetObject(ctx context.Context, bucket, object string, startOffset int64, length int64, writer io.Writer, etag string, opts ObjectOptions) (err error)
    GetObjectInfo(ctx context.Context, bucket, object string, opts ObjectOptions) (objInfo ObjectInfo, err error)
    PutObject(ctx context.Context, bucket, object string, data *PutObjReader, opts ObjectOptions) (objInfo ObjectInfo, err error)
    CopyObject(ctx context.Context, srcBucket, srcObject, destBucket, destObject string, srcInfo ObjectInfo, srcOpts, dstOpts ObjectOptions) (objInfo ObjectInfo, err error)
    DeleteObject(ctx context.Context, bucket, object string) error
    DeleteObjects(ctx context.Context, bucket string, objects []string) ([]error, error)

    // Multipart operations.
    ListMultipartUploads(ctx context.Context, bucket, prefix, keyMarker, uploadIDMarker, delimiter string, maxUploads int) (result ListMultipartsInfo, err error)
    NewMultipartUpload(ctx context.Context, bucket, object string, opts ObjectOptions) (uploadID string, err error)
    CopyObjectPart(ctx context.Context, srcBucket, srcObject, destBucket, destObject string, uploadID string, partID int,
        startOffset int64, length int64, srcInfo ObjectInfo, srcOpts, dstOpts ObjectOptions) (info PartInfo, err error)
    PutObjectPart(ctx context.Context, bucket, object, uploadID string, partID int, data *PutObjReader, opts ObjectOptions) (info PartInfo, err error)
    ListObjectParts(ctx context.Context, bucket, object, uploadID string, partNumberMarker int, maxParts int, opts ObjectOptions) (result ListPartsInfo, err error)
    AbortMultipartUpload(ctx context.Context, bucket, object, uploadID string) error
    CompleteMultipartUpload(ctx context.Context, bucket, object, uploadID string, uploadedParts []CompletePart, opts ObjectOptions) (objInfo ObjectInfo, err error)

    // Healing operations.
    ReloadFormat(ctx context.Context, dryRun bool) error
    HealFormat(ctx context.Context, dryRun bool) (madmin.HealResultItem, error)
    HealBucket(ctx context.Context, bucket string, dryRun, remove bool) (madmin.HealResultItem, error)
    HealObject(ctx context.Context, bucket, object string, opts madmin.HealOpts) (madmin.HealResultItem, error)
    HealObjects(ctx context.Context, bucket, prefix string, opts madmin.HealOpts, fn healObjectFn) error

    ListBucketsHeal(ctx context.Context) (buckets []BucketInfo, err error)

    // Policy operations
    SetBucketPolicy(context.Context, string, *policy.Policy) error
    GetBucketPolicy(context.Context, string) (*policy.Policy, error)
    DeleteBucketPolicy(context.Context, string) error

    // Supported operations check
    IsNotificationSupported() bool
    IsListenBucketSupported() bool
    IsEncryptionSupported() bool

    // Compression support check.
    IsCompressionSupported() bool

    // Lifecycle operations
    SetBucketLifecycle(context.Context, string, *lifecycle.Lifecycle) error
    GetBucketLifecycle(context.Context, string) (*lifecycle.Lifecycle, error)
    DeleteBucketLifecycle(context.Context, string) error

    // Bucket Encryption operations
    SetBucketSSEConfig(context.Context, string, *bucketsse.BucketSSEConfig) error
    GetBucketSSEConfig(context.Context, string) (*bucketsse.BucketSSEConfig, error)
    DeleteBucketSSEConfig(context.Context, string) error

    // Backend related metrics
    GetMetrics(ctx context.Context) (*Metrics, error)

    // Check Readiness
    IsReady(ctx context.Context) bool

    // ObjectTagging operations
    PutObjectTag(context.Context, string, string, string) error
    GetObjectTag(context.Context, string, string) (tagging.Tagging, error)
    DeleteObjectTag(context.Context, string, string) error
}

ObjectLayer implements primitives for object API layer.

func NewFSObjectLayer Uses

func NewFSObjectLayer(fsPath string) (ObjectLayer, error)

NewFSObjectLayer - initialize new fs object layer.

func NewGatewayLayerWithLocker Uses

func NewGatewayLayerWithLocker(gwLayer ObjectLayer) ObjectLayer

NewGatewayLayerWithLocker - initialize gateway with locker.

type ObjectNameInvalid Uses

type ObjectNameInvalid GenericError

ObjectNameInvalid - object name provided is invalid.

func (ObjectNameInvalid) Error Uses

func (e ObjectNameInvalid) Error() string

Error returns string an error formatted as the given text.

type ObjectNamePrefixAsSlash Uses

type ObjectNamePrefixAsSlash GenericError

ObjectNamePrefixAsSlash - object name has a slash as prefix.

func (ObjectNamePrefixAsSlash) Error Uses

func (e ObjectNamePrefixAsSlash) Error() string

Error returns string an error formatted as the given text.

type ObjectNameTooLong Uses

type ObjectNameTooLong GenericError

ObjectNameTooLong - object name too long.

func (ObjectNameTooLong) Error Uses

func (e ObjectNameTooLong) Error() string

Error returns string an error formatted as the given text.

type ObjectNotFound Uses

type ObjectNotFound GenericError

ObjectNotFound object does not exist.

func (ObjectNotFound) Error Uses

func (e ObjectNotFound) Error() string

type ObjectOptions Uses

type ObjectOptions struct {
    ServerSideEncryption encrypt.ServerSide
    UserDefined          map[string]string
    CheckCopyPrecondFn   CheckCopyPreconditionFn
}

ObjectOptions represents object options for ObjectLayer operations

type ObjectPartInfo Uses

type ObjectPartInfo struct {
    ETag       string `json:"etag,omitempty"`
    Number     int    `json:"number"`
    Size       int64  `json:"size"`
    ActualSize int64  `json:"actualSize"`
}

ObjectPartInfo Info of each part kept in the multipart metadata file after CompleteMultipartUpload() is called.

type ObjectTooLarge Uses

type ObjectTooLarge GenericError

ObjectTooLarge error returned when the size of the object > max object size allowed (5G) per request.

func (ObjectTooLarge) Error Uses

func (e ObjectTooLarge) Error() string

type ObjectTooSmall Uses

type ObjectTooSmall GenericError

ObjectTooSmall error returned when the size of the object < what is expected.

func (ObjectTooSmall) Error Uses

func (e ObjectTooSmall) Error() string

type ObjectVersion Uses

type ObjectVersion struct {
    XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Version" json:"-"`
    Object
    VersionID string `xml:"VersionId"`
    IsLatest  bool
}

ObjectVersion container for object version metadata

type OperationTimedOut Uses

type OperationTimedOut struct {
}

OperationTimedOut - a timeout occurred.

func (OperationTimedOut) Error Uses

func (e OperationTimedOut) Error() string

type Owner Uses

type Owner struct {
    ID          string
    DisplayName string
}

Owner - bucket owner/principal

type ParentIsObject Uses

type ParentIsObject GenericError

ParentIsObject object access is denied.

func (ParentIsObject) Error Uses

func (e ParentIsObject) Error() string

type Part Uses

type Part struct {
    PartNumber   int
    LastModified string
    ETag         string
    Size         int64
}

Part container for part metadata.

type PartInfo Uses

type PartInfo struct {
    // Part number that identifies the part. This is a positive integer between
    // 1 and 10,000.
    PartNumber int

    // Date and time at which the part was uploaded.
    LastModified time.Time

    // Entity tag returned when the part was initially uploaded.
    ETag string

    // Size in bytes of the part.
    Size int64

    // Decompressed Size.
    ActualSize int64
}

PartInfo - represents individual part metadata.

func FromMinioClientObjectPart Uses

func FromMinioClientObjectPart(op minio.ObjectPart) PartInfo

FromMinioClientObjectPart converts minio ObjectPart to PartInfo

type PartTooBig Uses

type PartTooBig struct{}

PartTooBig returned if size of part is bigger than the allowed limit.

func (PartTooBig) Error Uses

func (e PartTooBig) Error() string

type PartTooSmall Uses

type PartTooSmall struct {
    PartSize   int64
    PartNumber int
    PartETag   string
}

PartTooSmall - error if part size is less than 5MB.

func (PartTooSmall) Error Uses

func (e PartTooSmall) Error() string

type PeerLocks Uses

type PeerLocks struct {
    Addr  string
    Locks GetLocksResp
}

PeerLocks holds server information result of one node

type PeerRESTClientTarget Uses

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

PeerRESTClientTarget - RPCClient is an event.Target which sends event to target of remote peer.

func NewPeerRESTClientTarget Uses

func NewPeerRESTClientTarget(bucketName string, targetID event.TargetID, restClient *peerRESTClient) *PeerRESTClientTarget

NewPeerRESTClientTarget - creates RPCClient target with given target ID available in remote peer.

func (*PeerRESTClientTarget) Close Uses

func (target *PeerRESTClientTarget) Close() error

Close - does nothing and available for interface compatibility.

func (*PeerRESTClientTarget) ID Uses

func (target *PeerRESTClientTarget) ID() event.TargetID

ID - returns target ID.

func (*PeerRESTClientTarget) IsActive Uses

func (target *PeerRESTClientTarget) IsActive() (bool, error)

IsActive - does nothing and available for interface compatibility.

func (*PeerRESTClientTarget) Save Uses

func (target *PeerRESTClientTarget) Save(eventData event.Event) error

Save - Sends event directly without persisting.

func (*PeerRESTClientTarget) Send Uses

func (target *PeerRESTClientTarget) Send(eventKey string) error

Send - interface compatible method does no-op.

type PolicySys Uses

type PolicySys struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

PolicySys - policy subsystem.

func NewPolicySys Uses

func NewPolicySys() *PolicySys

NewPolicySys - creates new policy system.

func (*PolicySys) Init Uses

func (sys *PolicySys) Init(buckets []BucketInfo, objAPI ObjectLayer) error

Init - initializes policy system from policy.json of all buckets.

func (*PolicySys) IsAllowed Uses

func (sys *PolicySys) IsAllowed(args policy.Args) bool

IsAllowed - checks given policy args is allowed to continue the Rest API.

func (*PolicySys) Remove Uses

func (sys *PolicySys) Remove(bucketName string)

Remove - removes policy for given bucket name.

func (*PolicySys) Set Uses

func (sys *PolicySys) Set(bucketName string, policy policy.Policy)

Set - sets policy to given bucket name. If policy is empty, existing policy is removed.

type PostPolicyForm Uses

type PostPolicyForm struct {
    Expiration time.Time // Expiration date and time of the POST policy.
    Conditions struct {
        Policies []struct {
            Operator string
            Key      string
            Value    string
        }
        ContentLengthRange contentLengthRange
    }
}

PostPolicyForm provides strict static type conversion and validation for Amazon S3's POST policy JSON string.

type PostResponse Uses

type PostResponse struct {
    Bucket   string
    Key      string
    ETag     string
    Location string
}

PostResponse container for POST object request when success_action_status is set to 201

type PreConditionFailed Uses

type PreConditionFailed struct{}

PreConditionFailed - Check if copy precondition failed

func (PreConditionFailed) Error Uses

func (e PreConditionFailed) Error() string

type PrefixAccessDenied Uses

type PrefixAccessDenied GenericError

PrefixAccessDenied object access is denied.

func (PrefixAccessDenied) Error Uses

func (e PrefixAccessDenied) Error() string

type PresignedGetArgs Uses

type PresignedGetArgs struct {
    // Host header required for signed headers.
    HostName string `json:"host"`

    // Bucket name of the object to be presigned.
    BucketName string `json:"bucket"`

    // Object name to be presigned.
    ObjectName string `json:"object"`

    // Expiry in seconds.
    Expiry int64 `json:"expiry"`
}

PresignedGetArgs - presigned-get API args.

func (*PresignedGetArgs) ToKeyValue Uses

func (args *PresignedGetArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for PresignedGetArgs

type PresignedGetRep Uses

type PresignedGetRep struct {
    UIVersion string `json:"uiVersion"`
    // Presigned URL of the object.
    URL string `json:"url"`
}

PresignedGetRep - presigned-get URL reply.

type PutObjReader Uses

type PutObjReader struct {
    *hash.Reader // actual data stream
    // contains filtered or unexported fields
}

PutObjReader is a type that wraps sio.EncryptReader and underlying hash.Reader in a struct

func NewPutObjReader Uses

func NewPutObjReader(rawReader *hash.Reader, encReader *hash.Reader, encKey []byte) *PutObjReader

NewPutObjReader returns a new PutObjReader and holds reference to underlying data stream from client and the encrypted data reader

func (*PutObjReader) MD5CurrentHexString Uses

func (p *PutObjReader) MD5CurrentHexString() string

MD5CurrentHexString returns the current MD5Sum or encrypted MD5Sum as a hex encoded string

func (*PutObjReader) Size Uses

func (p *PutObjReader) Size() int64

Size returns the absolute number of bytes the Reader will return during reading. It returns -1 for unlimited data.

type RWLocker Uses

type RWLocker interface {
    GetLock(timeout *dynamicTimeout) (timedOutErr error)
    Unlock()
    GetRLock(timeout *dynamicTimeout) (timedOutErr error)
    RUnlock()
}

RWLocker - locker interface to introduce GetRLock, RUnlock.

type RangeInfo Uses

type RangeInfo struct {
    Range string
    File  string
    Size  int64
}

RangeInfo has the range, file and range length information for a cached range.

func (*RangeInfo) Empty Uses

func (r *RangeInfo) Empty() bool

Empty returns true if this is an empty struct

type RemoveBucketArgs Uses

type RemoveBucketArgs struct {
    BucketName string `json:"bucketName"`
}

RemoveBucketArgs - remove bucket args.

func (*RemoveBucketArgs) ToKeyValue Uses

func (args *RemoveBucketArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for RemoveBucketArgs

type RemoveObjectArgs Uses

type RemoveObjectArgs struct {
    Objects    []string `json:"objects"`    // Contains objects, prefixes.
    BucketName string   `json:"bucketname"` // Contains bucket name.
}

RemoveObjectArgs - args to remove an object, JSON will look like.

{

"bucketname": "testbucket",
"objects": [
    "photos/hawaii/",
    "photos/maldives/",
    "photos/sanjose.jpg"
]

}

func (*RemoveObjectArgs) ToKeyValue Uses

func (args *RemoveObjectArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for RemoveObjectArgs

type RequestStats Uses

type RequestStats struct {
    Get  atomic.Uint64 `json:"Get"`
    Head atomic.Uint64 `json:"Head"`
    Put  atomic.Uint64 `json:"Put"`
    Post atomic.Uint64 `json:"Post"`
}

RequestStats - counts for Get and Head requests

type STSError Uses

type STSError struct {
    Code           string
    Description    string
    HTTPStatusCode int
}

STSError structure

type STSErrorCode Uses

type STSErrorCode int

STSErrorCode type of error status.

const (
    ErrSTSNone STSErrorCode = iota
    ErrSTSInvalidService
    ErrSTSAccessDenied
    ErrSTSMissingParameter
    ErrSTSInvalidParameterValue
    ErrSTSWebIdentityExpiredToken
    ErrSTSClientGrantsExpiredToken
    ErrSTSInvalidClientGrantsToken
    ErrSTSMalformedPolicyDocument
    ErrSTSNotInitialized
    ErrSTSInternalError
)

Error codes, non exhaustive list - http://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html

type STSErrorResponse Uses

type STSErrorResponse struct {
    XMLName xml.Name `xml:"https://sts.amazonaws.com/doc/2011-06-15/ ErrorResponse" json:"-"`
    Error   struct {
        Type    string `xml:"Type"`
        Code    string `xml:"Code"`
        Message string `xml:"Message"`
    }   `xml:"Error"`
    RequestID string `xml:"RequestId"`
}

STSErrorResponse - error response format

type SealMD5CurrFn Uses

type SealMD5CurrFn func([]byte) []byte

SealMD5CurrFn seals md5sum with object encryption key and returns sealed md5sum

type ServerCPULoadInfo Uses

type ServerCPULoadInfo struct {
    Addr         string     `json:"addr"`
    Error        string     `json:"error,omitempty"`
    Load         []cpu.Load `json:"load"`
    HistoricLoad []cpu.Load `json:"historicLoad"`
}

ServerCPULoadInfo holds informantion about cpu utilization of one minio node. It also reports any errors if encountered while trying to reach this server.

type ServerConnStats Uses

type ServerConnStats struct {
    TotalInputBytes  uint64 `json:"transferred"`
    TotalOutputBytes uint64 `json:"received"`
    Throughput       uint64 `json:"throughput,omitempty"`
    S3InputBytes     uint64 `json:"transferredS3"`
    S3OutputBytes    uint64 `json:"receivedS3"`
}

ServerConnStats holds transferred bytes from/to the server

type ServerHTTPAPIStats Uses

type ServerHTTPAPIStats struct {
    APIStats map[string]int `json:"apiStats"`
}

ServerHTTPAPIStats holds total number of HTTP operations from/to the server, including the average duration the call was spent.

type ServerHTTPStats Uses

type ServerHTTPStats struct {
    CurrentS3Requests ServerHTTPAPIStats `json:"currentS3Requests"`
    TotalS3Requests   ServerHTTPAPIStats `json:"totalS3Requests"`
    TotalS3Errors     ServerHTTPAPIStats `json:"totalS3Errors"`
}

ServerHTTPStats holds all type of http operations performed to/from the server including their average execution time.

type ServerInfo Uses

type ServerInfo struct {
    Error string          `json:"error"`
    Addr  string          `json:"addr"`
    Data  *ServerInfoData `json:"data"`
}

ServerInfo holds server information result of one node

type ServerInfoData Uses

type ServerInfoData struct {
    ConnStats  ServerConnStats  `json:"network"`
    HTTPStats  ServerHTTPStats  `json:"http"`
    Properties ServerProperties `json:"server"`
}

ServerInfoData holds storage, connections and other information of a given server.

type ServerInfoRep Uses

type ServerInfoRep struct {
    MinioVersion    string
    MinioMemory     string
    MinioPlatform   string
    MinioRuntime    string
    MinioGlobalInfo map[string]interface{}
    MinioUserInfo   map[string]interface{}
    UIVersion       string `json:"uiVersion"`
}

ServerInfoRep - server info reply.

type ServerMemUsageInfo Uses

type ServerMemUsageInfo struct {
    Addr          string      `json:"addr"`
    Error         string      `json:"error,omitempty"`
    Usage         []mem.Usage `json:"usage"`
    HistoricUsage []mem.Usage `json:"historicUsage"`
}

ServerMemUsageInfo holds informantion about memory utilization of one minio node. It also reports any errors if encountered while trying to reach this server.

type ServerNetReadPerfInfo Uses

type ServerNetReadPerfInfo struct {
    Addr           string `json:"addr"`
    ReadThroughput uint64 `json:"readThroughput"`
    Error          string `json:"error,omitempty"`
}

ServerNetReadPerfInfo network read performance information.

type ServerProperties Uses

type ServerProperties struct {
    Uptime       int64    `json:"uptime"`
    Version      string   `json:"version"`
    CommitID     string   `json:"commitID"`
    DeploymentID string   `json:"deploymentID"`
    Region       string   `json:"region"`
    SQSARN       []string `json:"sqsARN"`
}

ServerProperties holds some server information such as, version, region uptime, etc..

type ServerSystemConfig Uses

type ServerSystemConfig struct {
    MinioPlatform  string
    MinioRuntime   string
    MinioEndpoints EndpointZones
}

ServerSystemConfig - captures information about server configuration.

func (ServerSystemConfig) Diff Uses

func (s1 ServerSystemConfig) Diff(s2 ServerSystemConfig) error

Diff - returns error on first difference found in two configs.

type SetAuthArgs Uses

type SetAuthArgs struct {
    CurrentAccessKey string `json:"currentAccessKey"`
    CurrentSecretKey string `json:"currentSecretKey"`
    NewAccessKey     string `json:"newAccessKey"`
    NewSecretKey     string `json:"newSecretKey"`
}

SetAuthArgs - argument for SetAuth

func (*SetAuthArgs) ToKeyValue Uses

func (args *SetAuthArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for SetAuthArgs SetAuthArgs doesn't implement the ToKeyValue interface that will be used by logger subsystem down the line, to avoid leaking credentials to an external log target

type SetAuthReply Uses

type SetAuthReply struct {
    Token       string            `json:"token"`
    UIVersion   string            `json:"uiVersion"`
    PeerErrMsgs map[string]string `json:"peerErrMsgs"`
}

SetAuthReply - reply for SetAuth

type SetBucketPolicyWebArgs Uses

type SetBucketPolicyWebArgs struct {
    BucketName string `json:"bucketName"`
    Prefix     string `json:"prefix"`
    Policy     string `json:"policy"`
}

SetBucketPolicyWebArgs - set bucket policy args.

func (*SetBucketPolicyWebArgs) ToKeyValue Uses

func (args *SetBucketPolicyWebArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for SetBucketPolicyWebArgs

type SetupType Uses

type SetupType int

SetupType - enum for setup type.

const (
    // UnknownSetupType - starts with unknown setup type.
    UnknownSetupType SetupType = iota

    // FSSetupType - FS setup type enum.
    FSSetupType

    // XLSetupType - XL setup type enum.
    XLSetupType

    // DistXLSetupType - Distributed XL setup type enum.
    DistXLSetupType

    // GatewaySetupType - gateway setup type enum.
    GatewaySetupType
)

func (SetupType) String Uses

func (setupType SetupType) String() string

type SignatureDoesNotMatch Uses

type SignatureDoesNotMatch struct{}

SignatureDoesNotMatch - when content md5 does not match with what was sent from client.

func (SignatureDoesNotMatch) Error Uses

func (e SignatureDoesNotMatch) Error() string

type SlowDown Uses

type SlowDown struct{}

SlowDown too many file descriptors open or backend busy .

func (SlowDown) Error Uses

func (e SlowDown) Error() string

type StartProfilingResult Uses

type StartProfilingResult struct {
    NodeName string `json:"nodeName"`
    Success  bool   `json:"success"`
    Error    string `json:"error"`
}

StartProfilingResult contains the status of the starting profiling action in a given server

type StatInfo Uses

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

StatInfo - alias for statInfo

type StorageAPI Uses

type StorageAPI interface {
    // Stringified version of disk.
    String() string

    // Storage operations.
    IsOnline() bool   // Returns true if disk is online.
    Hostname() string // Returns host name if remote host.
    Close() error
    GetDiskID() (string, error)
    SetDiskID(id string)

    DiskInfo() (info DiskInfo, err error)
    CrawlAndGetDataUsage(ctx context.Context, cache dataUsageCache) (dataUsageCache, error)

    // Volume operations.
    MakeVol(volume string) (err error)
    MakeVolBulk(volumes ...string) (err error)
    ListVols() (vols []VolInfo, err error)
    StatVol(volume string) (vol VolInfo, err error)
    DeleteVol(volume string, forceDelete bool) (err error)

    // Walk in sorted order directly on disk.
    Walk(volume, dirPath string, marker string, recursive bool, leafFile string,
        readMetadataFn readMetadataFunc, endWalkCh <-chan struct{}) (chan FileInfo, error)
    // Walk in sorted order directly on disk.
    WalkSplunk(volume, dirPath string, marker string, endWalkCh <-chan struct{}) (chan FileInfo, error)

    // File operations.
    ListDir(volume, dirPath string, count int, leafFile string) ([]string, error)
    ReadFile(volume string, path string, offset int64, buf []byte, verifier *BitrotVerifier) (n int64, err error)
    AppendFile(volume string, path string, buf []byte) (err error)
    CreateFile(volume, path string, size int64, reader io.Reader) error
    ReadFileStream(volume, path string, offset, length int64) (io.ReadCloser, error)
    RenameFile(srcVolume, srcPath, dstVolume, dstPath string) error
    StatFile(volume string, path string) (file FileInfo, err error)
    DeleteFile(volume string, path string) (err error)
    DeleteFileBulk(volume string, paths []string) (errs []error, err error)
    DeletePrefixes(volume string, paths []string) (errs []error, err error)
    VerifyFile(volume, path string, size int64, algo BitrotAlgorithm, sum []byte, shardSize int64) error

    // Write all data, syncs the data to disk.
    WriteAll(volume string, path string, reader io.Reader) (err error)

    // Read all.
    ReadAll(volume string, path string) (buf []byte, err error)
}

StorageAPI interface.

var OfflineDisk StorageAPI // zero value is nil

OfflineDisk represents an unavailable disk.

type StorageErr Uses

type StorageErr string

StorageErr represents error generated by posix call.

func (StorageErr) Error Uses

func (h StorageErr) Error() string

type StorageFull Uses

type StorageFull struct{}

StorageFull storage ran out of space.

func (StorageFull) Error Uses

func (e StorageFull) Error() string

type StorageInfo Uses

type StorageInfo struct {
    Used []uint64 // Used total used per disk.

    Total []uint64 // Total disk space per disk.

    Available []uint64 // Total disk space available per disk.

    MountPaths []string // Disk mountpoints

    // Backend type.
    Backend struct {
        // Represents various backend types, currently on FS, Erasure and Gateway
        Type BackendType

        // Following fields are only meaningful if BackendType is Gateway.
        GatewayOnline bool

        // Following fields are only meaningful if BackendType is Erasure.
        OnlineDisks      madmin.BackendDisks // Online disks during server startup.
        OfflineDisks     madmin.BackendDisks // Offline disks during server startup.
        StandardSCData   int                 // Data disks for currently configured Standard storage class.
        StandardSCParity int                 // Parity disks for currently configured Standard storage class.
        RRSCData         int                 // Data disks for currently configured Reduced Redundancy storage class.
        RRSCParity       int                 // Parity disks for currently configured Reduced Redundancy storage class.

        // List of all disk status, this is only meaningful if BackendType is Erasure.
        Sets [][]madmin.DriveInfo
    }
}

StorageInfo - represents total capacity of underlying storage.

type StorageInfoRep Uses

type StorageInfoRep struct {
    StorageInfo StorageInfo `json:"storageInfo"`
    UIVersion   string      `json:"uiVersion"`
}

StorageInfoRep - contains storage usage statistics.

type StringMap Uses

type StringMap map[string]string

StringMap is a map[string]string.

func (StringMap) MarshalXML Uses

func (s StringMap) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML - StringMap marshals into XML.

type ToKeyValuer Uses

type ToKeyValuer interface {
    ToKeyValue() KeyValueMap
}

ToKeyValuer interface wraps ToKeyValue method that allows types to marshal their values as a map of structure member names to their values, as strings

type TreeWalkPool Uses

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

TreeWalkPool - pool of treeWalk go routines. A treeWalk is added to the pool by Set() and removed either by doing a Release() or if the concerned timer goes off. treeWalkPool's purpose is to maintain active treeWalk go-routines in a map so that it can be looked up across related list calls.

func NewTreeWalkPool Uses

func NewTreeWalkPool(timeout time.Duration) *TreeWalkPool

NewTreeWalkPool - initialize new tree walk pool.

func (TreeWalkPool) Release Uses

func (t TreeWalkPool) Release(params listParams) (resultCh chan TreeWalkResult, endWalkCh chan struct{})

Release - selects a treeWalk from the pool based on the input listParams, removes it from the pool, and returns the TreeWalkResult channel. Returns nil if listParams does not have an asccociated treeWalk.

func (TreeWalkPool) Set Uses

func (t TreeWalkPool) Set(params listParams, resultCh chan TreeWalkResult, endWalkCh chan struct{})

Set - adds a treeWalk to the treeWalkPool. Also starts a timer go-routine that ends when: 1) time.After() expires after t.timeOut seconds.

The expiration is needed so that the treeWalk go-routine resources are freed after a timeout
if the S3 client does only partial listing of objects.

2) Relase() signals the timer go-routine to end on endTimerCh.

During listing the timer should not timeout and end the treeWalk go-routine, hence the
timer go-routine should be ended.

type TreeWalkResult Uses

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

TreeWalkResult - Tree walk result carries results of tree walking.

type URLTokenReply Uses

type URLTokenReply struct {
    Token     string `json:"token"`
    UIVersion string `json:"uiVersion"`
}

URLTokenReply contains the reply for CreateURLToken.

type UnsupportedDelimiter Uses

type UnsupportedDelimiter struct {
    Delimiter string
}

UnsupportedDelimiter - unsupported delimiter.

func (UnsupportedDelimiter) Error Uses

func (e UnsupportedDelimiter) Error() string

type UnsupportedMetadata Uses

type UnsupportedMetadata struct{}

UnsupportedMetadata - unsupported metadata

func (UnsupportedMetadata) Error Uses

func (e UnsupportedMetadata) Error() string

type Upload Uses

type Upload struct {
    Key          string
    UploadID     string `xml:"UploadId"`
    Initiator    Initiator
    Owner        Owner
    StorageClass string
    Initiated    string
}

Upload container for in progress multipart upload

type UserIdentity Uses

type UserIdentity struct {
    Version     int              `json:"version"`
    Credentials auth.Credentials `json:"credentials"`
}

UserIdentity represents a user's secret key and their status

type UsersSysType Uses

type UsersSysType string

UsersSysType - defines the type of users and groups system that is active on the server.

const (
    // This mode uses the internal users system in MinIO.
    MinIOUsersSysType UsersSysType = "MinIOUsersSys"

    // This mode uses users and groups from a configured LDAP
    // server.
    LDAPUsersSysType UsersSysType = "LDAPUsersSys"
)

Types of users configured in the server.

type VerifyFileResp Uses

type VerifyFileResp struct {
    Err error
}

VerifyFileResp - VerifyFile()'s response.

type VolInfo Uses

type VolInfo struct {
    // Name of the volume.
    Name string

    // Date and time when the volume was created.
    Created time.Time
}

VolInfo - represents volume stat information.

type WebBucketInfo Uses

type WebBucketInfo struct {
    // The name of the bucket.
    Name string `json:"name"`
    // Date the bucket was created.
    CreationDate time.Time `json:"creationDate"`
}

WebBucketInfo container for list buckets metadata.

type WebGenericArgs Uses

type WebGenericArgs struct{}

WebGenericArgs - empty struct for calls that don't accept arguments for ex. ServerInfo, GenerateAuth

func (*WebGenericArgs) ToKeyValue Uses

func (args *WebGenericArgs) ToKeyValue() KeyValueMap

ToKeyValue implementation for WebGenericArgs

type WebGenericRep Uses

type WebGenericRep struct {
    UIVersion string `json:"uiVersion"`
}

WebGenericRep - reply structure for calls for which reply is success/failure for ex. RemoveObject MakeBucket

type WebIdentityResult Uses

type WebIdentityResult struct {
    // The identifiers for the temporary security credentials that the operation
    // returns.
    AssumedRoleUser AssumedRoleUser `xml:",omitempty"`

    // The intended audience (also known as client ID) of the web identity token.
    // This is traditionally the client identifier issued to the application that
    // requested the client grants.
    Audience string `xml:",omitempty"`

    // The temporary security credentials, which include an access key ID, a secret
    // access key, and a security (or session) token.
    //
    // Note: The size of the security token that STS APIs return is not fixed. We
    // strongly recommend that you make no assumptions about the maximum size. As
    // of this writing, the typical size is less than 4096 bytes, but that can vary.
    // Also, future updates to AWS might require larger sizes.
    Credentials auth.Credentials `xml:",omitempty"`

    // A percentage value that indicates the size of the policy in packed form.
    // The service rejects any policy with a packed size greater than 100 percent,
    // which means the policy exceeded the allowed space.
    PackedPolicySize int `xml:",omitempty"`

    // The issuing authority of the web identity token presented. For OpenID Connect
    // ID tokens, this contains the value of the iss field. For OAuth 2.0 access tokens,
    // this contains the value of the ProviderId parameter that was passed in the
    // AssumeRoleWithWebIdentity request.
    Provider string `xml:",omitempty"`

    // The unique user identifier that is returned by the identity provider.
    // This identifier is associated with the Token that was submitted
    // with the AssumeRoleWithWebIdentity call. The identifier is typically unique to
    // the user and the application that acquired the WebIdentityToken (pairwise identifier).
    // For OpenID Connect ID tokens, this field contains the value returned by the identity
    // provider as the token's sub (Subject) claim.
    SubjectFromWebIdentityToken string `xml:",omitempty"`
}

WebIdentityResult - Contains the response to a successful AssumeRoleWithWebIdentity request, including temporary credentials that can be used to make MinIO API requests.

type WebObjectInfo Uses

type WebObjectInfo struct {
    // Name of the object
    Key string `json:"name"`
    // Date and time the object was last modified.
    LastModified time.Time `json:"lastModified"`
    // Size in bytes of the object.
    Size int64 `json:"size"`
    // ContentType is mime type of the object.
    ContentType string `json:"contentType"`
}

WebObjectInfo container for list objects metadata.

type ZoneEndpoints Uses

type ZoneEndpoints struct {
    SetCount     int
    DrivesPerSet int
    Endpoints    Endpoints
}

ZoneEndpoints represent endpoints in a given zone along with its setCount and drivesPerSet.

Directories

PathSynopsis
config
config/cache
config/compress
config/etcd
config/etcd/dns
config/identity/ldap
config/identity/openid
config/notify
config/policy/opa
config/storageclass
cryptoPackage crypto implements AWS S3 related cryptographic building blocks for implementing Server-Side-Encryption (SSE-S3) and Server-Side-Encryption with customer provided keys (SSE-C).
gateway
gateway/azure
gateway/b2
gateway/gcs
gateway/hdfs
gateway/nas
gateway/oss
gateway/s3
http
jwt
logger
logger/message/audit
logger/message/log
logger/target/console
logger/target/http
rest

Package cmd imports 154 packages (graph) and is imported by 14 packages. Updated 2020-04-03. Refresh now. Tools for package owners.