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-bucket-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 background-newdisks-heal-ops_gen.go bitrot-streaming.go bitrot-whole.go bitrot.go bootstrap-peer-server.go bucket-encryption-handlers.go bucket-encryption.go bucket-handlers.go bucket-lifecycle-handlers.go bucket-lifecycle.go bucket-listobjects-handlers.go bucket-metadata-sys.go bucket-metadata.go bucket-metadata_gen.go bucket-notification-handlers.go bucket-object-lock.go bucket-policy-handlers.go bucket-policy.go bucket-quota.go bucket-replication.go bucket-targets.go bucket-versioning-handler.go bucket-versioning.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 data-crawler.go data-update-tracker.go data-usage-cache.go data-usage-cache_gen.go data-usage.go disk-cache-backend.go disk-cache-check-support_other.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-bucket.go erasure-coding.go erasure-common.go erasure-decode.go erasure-encode.go erasure-errors.go erasure-healing-common.go erasure-healing.go erasure-lowlevel-heal.go erasure-metadata-utils.go erasure-metadata.go erasure-multipart.go erasure-object.go erasure-server-sets.go erasure-sets.go erasure-utils.go erasure.go etcd.go fallocate_linux.go fastwalk.go format-disk-cache.go format-erasure.go format-fs.go format-meta.go fs-tree-walk-pool.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-api.go handler-utils.go hasher.go healthcheck-handler.go healthcheck-router.go healthinfo.go healthinfo_linux.go http-stats.go http-tracer.go httprange.go iam-etcd-store.go iam-object-store.go iam.go jwt.go listen-notification-handlers.go local-locker.go lock-rest-client.go lock-rest-server-common.go lock-rest-server.go main.go metacache-bucket.go metacache-bucket_gen.go metacache-entries.go metacache-manager.go metacache-marker.go metacache-server-pool.go metacache-set.go metacache-stream.go metacache-walk.go metacache.go metacache_gen.go metrics-router.go metrics.go namespace-lock.go net.go notification.go object-api-common.go object-api-datatypes.go object-api-errors.go object-api-input-checks.go object-api-interface.go object-api-options.go object-api-utils.go object-handlers-common.go object-handlers.go os-dirent_ino.go os-dirent_namelen_linux.go os-readdir_unix.go os-reliable.go peer-rest-client.go peer-rest-common.go peer-rest-server.go postpolicyform.go prepare-storage.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-datatypes_gen.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.go typed-errors.go update-notifier.go update.go utils.go web-handler-context.go web-handlers.go web-router.go xl-storage-disk-id-check.go xl-storage-errors.go xl-storage-format-utils.go xl-storage-format-v1.go xl-storage-format-v1_gen.go xl-storage-format-v2.go xl-storage-format-v2_gen.go xl-storage.go

Constants

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

Admin API errors

const (
    // CommitPending - cache writeback with backend is pending.
    CommitPending cacheCommitStatus = "pending"

    // CommitComplete - cache writeback completed ok.
    CommitComplete cacheCommitStatus = "complete"

    // CommitFailed - cache writeback needs a retry.
    CommitFailed cacheCommitStatus = "failed"
)
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 (
    GatewayMinioSysTmp  = "minio.sys.tmp/"
    AzureBackendGateway = "azure"
    GCSBackendGateway   = "gcs"
    HDFSBackendGateway  = "hdfs"
    NASBackendGateway   = "nas"
    S3BackendGateway    = "s3"
)

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

const (
    ReservedMetadataPrefix      = "X-Minio-Internal-"
    ReservedMetadataPrefixLower = "x-minio-internal-"
)

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

const (

    // GlobalStaleUploadsExpiry - Expiry duration after which the uploads in multipart, tmp directory are deemed stale.
    GlobalStaleUploadsExpiry = time.Hour * 24 // 24 hrs.
    // GlobalStaleUploadsCleanupInterval - Cleanup interval when the stale uploads cleanup is initiated.
    GlobalStaleUploadsCleanupInterval = 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 (
    EnvErasureSetDriveCount = "MINIO_ERASURE_SET_DRIVE_COUNT"
)

Override set drive count for manual distribution.

const (
    EnvPrometheusAuthType = "MINIO_PROMETHEUS_AUTH_TYPE"
)

Standard env prometheus auth type

const (
    GlobalMinioDefaultPort = "9000"
)

minio configuration related constants.

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.

const VersionPurgeStatusKey = "purgestatus"

VersionPurgeStatusKey denotes purge status in metadata

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 = "DEVELOPMENT.GOGET"

    // ReleaseTag - release tag in TAG.%Y-%m-%dT%H-%M-%SZ.
    ReleaseTag = "DEVELOPMENT.GOGET"

    // CommitID - latest commit id.
    CommitID = "DEVELOPMENT.GOGET"

    // ShortCommitID - first 12 characters from CommitID.
    ShortCommitID = "DEVELOPMENT.GOGET"
)

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

    // FilterListEntries function alias.
    FilterListEntries = filterListEntries

    // 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",
        Hidden: true,
    },
    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",
        Hidden: true,
    },

    cli.BoolFlag{
        Name:   "no-compat",
        Usage:  "disable strict S3 compatibility by turning on certain performance optimizations",
        Hidden: true,
    },
}

GlobalFlags - global flags for minio.

var GlobalServiceDoneCh <-chan struct{}

GlobalServiceDoneCh - Global service done channel.

var ObjectsHistogramIntervals = []objectHistogramInterval{
    {"LESS_THAN_1024_B", 0, humanize.KiByte - 1},
    {"BETWEEN_1024_B_AND_1_MB", humanize.KiByte, humanize.MiByte - 1},
    {"BETWEEN_1_MB_AND_10_MB", humanize.MiByte, humanize.MiByte*10 - 1},
    {"BETWEEN_10_MB_AND_64_MB", humanize.MiByte * 10, humanize.MiByte*64 - 1},
    {"BETWEEN_64_MB_AND_128_MB", humanize.MiByte * 64, humanize.MiByte*128 - 1},
    {"BETWEEN_128_MB_AND_512_MB", humanize.MiByte * 128, humanize.MiByte*512 - 1},
    {"GREATER_THAN_512_MB", humanize.MiByte * 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 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 ClusterCheckHandler Uses

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

ClusterCheckHandler returns if the server is ready for requests.

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 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 DecryptETag Uses

func DecryptETag(key crypto.ObjectKey, object ObjectInfo) (string, error)

DecryptETag decrypts the ETag that is part of given object with the given object encryption key.

However, DecryptETag does not try to decrypt the ETag if it consists of a 128 bit hex value (32 hex chars) and exactly one '-' followed by a 32-bit number. This special case adresses randomly-generated ETags generated by the MinIO server when running in non-compat mode. These random ETags are not encrypt.

Calling DecryptETag with a non-randomly generated ETag will fail.

func DecryptObjectInfo Uses

func DecryptObjectInfo(info *ObjectInfo, r *http.Request) (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 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 EncryptRequest Uses

func EncryptRequest(content io.Reader, r *http.Request, bucket, object string, metadata map[string]string) (io.Reader, crypto.ObjectKey, 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(endpointServerPools EndpointServerPools) (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 GetProxyEndpointLocalIndex Uses

func GetProxyEndpointLocalIndex(proxyEps []ProxyEndpoint) int

GetProxyEndpointLocalIndex returns index of the local proxy endpoint

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, host 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 the process is up. Always returns success.

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.

func ObjectPathUpdated Uses

func ObjectPathUpdated(s string)

ObjectPathUpdated indicates a path has been updated. The function will block until the entry has been picked up.

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 a MinIO policy into a minio-go policy data structure.

func ReadinessCheckHandler Uses

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

ReadinessCheckHandler Checks if the process is up. Always returns success.

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.

func WebTrace Uses

func WebTrace(ri *jsonrpc.RequestInfo) trace.Info

WebTrace gets trace of web request

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
    ErrNoSuchCORSConfiguration
    ErrNoSuchWebsiteConfiguration
    ErrReplicationConfigurationNotFoundError
    ErrRemoteDestinationNotFoundError
    ErrReplicationDestinationMissingLock
    ErrRemoteTargetNotFoundError
    ErrReplicationRemoteConnectionError
    ErrBucketRemoteIdenticalToSource
    ErrBucketRemoteAlreadyExists
    ErrBucketRemoteLabelInUse
    ErrBucketRemoteArnTypeInvalid
    ErrBucketRemoteArnInvalid
    ErrBucketRemoteRemoveDisallowed
    ErrRemoteTargetNotVersionedError
    ErrReplicationSourceNotVersionedError
    ErrReplicationNeedsVersioningError
    ErrReplicationBucketNeedsVersioningError
    ErrBucketReplicationDisabledError
    ErrObjectRestoreAlreadyInProgress
    ErrNoSuchKey
    ErrNoSuchUpload
    ErrInvalidVersionID
    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
    ErrObjectLockConfigurationNotFound
    ErrObjectLockConfigurationNotAllowed
    ErrNoSuchObjectLockConfiguration
    ErrObjectLocked
    ErrInvalidRetentionDate
    ErrPastObjectLockRetainDate
    ErrUnknownWORMModeDirective
    ErrBucketTaggingNotFound
    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
    ErrClientDisconnected
    ErrOperationMaxedOut
    ErrInvalidRequest
    // MinIO storage class error codes
    ErrInvalidStorageClass
    ErrBackendDown

    ErrMalformedJSON
    ErrAdminNoSuchUser
    ErrAdminNoSuchGroup
    ErrAdminGroupNotEmpty
    ErrAdminNoSuchPolicy
    ErrAdminInvalidArgument
    ErrAdminInvalidAccessKey
    ErrAdminInvalidSecretKey
    ErrAdminConfigNoQuorum
    ErrAdminConfigTooLarge
    ErrAdminConfigBadJSON
    ErrAdminConfigDuplicateKeys
    ErrAdminCredentialsMismatch
    ErrInsecureClientRequest
    ErrObjectTampered
    // Bucket Quota error codes
    ErrAdminBucketQuotaExceeded
    ErrAdminNoSuchQuotaConfiguration
    ErrAdminBucketQuotaDisabled

    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
    ErrAdminAccountNotEligible
    ErrAccountNotEligible
    ErrServiceAccountNotFound
    ErrPostPolicyConditionInvalidFormat
)

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

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 BackendInfo Uses

type BackendInfo 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.
    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.
}

BackendInfo - contains info of the underlying backend

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) DecodeMsg Uses

func (z *BitrotAlgorithm) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (BitrotAlgorithm) EncodeMsg Uses

func (z BitrotAlgorithm) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (BitrotAlgorithm) MarshalMsg Uses

func (z BitrotAlgorithm) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (BitrotAlgorithm) Msgsize Uses

func (z BitrotAlgorithm) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

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.

func (*BitrotAlgorithm) UnmarshalMsg Uses

func (z *BitrotAlgorithm) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

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 BucketMetadata Uses

type BucketMetadata struct {
    Name                        string
    Created                     time.Time
    LockEnabled                 bool // legacy not used anymore.
    PolicyConfigJSON            []byte
    NotificationConfigXML       []byte
    LifecycleConfigXML          []byte
    ObjectLockConfigXML         []byte
    VersioningConfigXML         []byte
    EncryptionConfigXML         []byte
    TaggingConfigXML            []byte
    QuotaConfigJSON             []byte
    ReplicationConfigXML        []byte
    BucketTargetsConfigJSON     []byte
    BucketTargetsConfigMetaJSON []byte
    // contains filtered or unexported fields
}

BucketMetadata contains bucket metadata. When adding/removing fields, regenerate the marshal code using the go generate above. Only changing meaning of fields requires a version bump. bucketMetadataFormat refers to the format. bucketMetadataVersion can be used to track a rolling upgrade of a field.

func (*BucketMetadata) DecodeMsg Uses

func (z *BucketMetadata) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*BucketMetadata) EncodeMsg Uses

func (z *BucketMetadata) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*BucketMetadata) Load Uses

func (b *BucketMetadata) Load(ctx context.Context, api ObjectLayer, name string) error

Load - loads the metadata of bucket by name from ObjectLayer api. If an error is returned the returned metadata will be default initialized.

func (*BucketMetadata) MarshalMsg Uses

func (z *BucketMetadata) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*BucketMetadata) Msgsize Uses

func (z *BucketMetadata) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*BucketMetadata) Save Uses

func (b *BucketMetadata) Save(ctx context.Context, api ObjectLayer) error

Save config to supplied ObjectLayer api.

func (*BucketMetadata) UnmarshalMsg Uses

func (z *BucketMetadata) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type BucketMetadataSys Uses

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

BucketMetadataSys captures all bucket metadata for a given cluster.

func NewBucketMetadataSys Uses

func NewBucketMetadataSys() *BucketMetadataSys

NewBucketMetadataSys - creates new policy system.

func (*BucketMetadataSys) Get Uses

func (sys *BucketMetadataSys) Get(bucket string) (BucketMetadata, error)

Get metadata for a bucket. If no metadata exists errConfigNotFound is returned and a new metadata is returned. Only a shallow copy is returned, so referenced data should not be modified, but can be replaced atomically.

This function should only be used with - GetBucketInfo - ListBuckets For all other bucket specific metadata, use the relevant calls implemented specifically for each of those features.

func (*BucketMetadataSys) GetBucketTarget Uses

func (sys *BucketMetadataSys) GetBucketTarget(bucket string, arn string) (madmin.BucketTarget, error)

GetBucketTarget returns the target for the bucket and arn.

func (*BucketMetadataSys) GetBucketTargetsConfig Uses

func (sys *BucketMetadataSys) GetBucketTargetsConfig(bucket string) (*madmin.BucketTargets, error)

GetBucketTargetsConfig returns configured bucket targets for this bucket The returned object may not be modified.

func (*BucketMetadataSys) GetConfig Uses

func (sys *BucketMetadataSys) GetConfig(bucket string) (BucketMetadata, error)

GetConfig returns a specific configuration from the bucket metadata. The returned object may not be modified.

func (*BucketMetadataSys) GetLifecycleConfig Uses

func (sys *BucketMetadataSys) GetLifecycleConfig(bucket string) (*lifecycle.Lifecycle, error)

GetLifecycleConfig returns configured lifecycle config The returned object may not be modified.

func (*BucketMetadataSys) GetNotificationConfig Uses

func (sys *BucketMetadataSys) GetNotificationConfig(bucket string) (*event.Config, error)

GetNotificationConfig returns configured notification config The returned object may not be modified.

func (*BucketMetadataSys) GetObjectLockConfig Uses

func (sys *BucketMetadataSys) GetObjectLockConfig(bucket string) (*objectlock.Config, error)

GetObjectLockConfig returns configured object lock config The returned object may not be modified.

func (*BucketMetadataSys) GetPolicyConfig Uses

func (sys *BucketMetadataSys) GetPolicyConfig(bucket string) (*policy.Policy, error)

GetPolicyConfig returns configured bucket policy The returned object may not be modified.

func (*BucketMetadataSys) GetQuotaConfig Uses

func (sys *BucketMetadataSys) GetQuotaConfig(bucket string) (*madmin.BucketQuota, error)

GetQuotaConfig returns configured bucket quota The returned object may not be modified.

func (*BucketMetadataSys) GetReplicationConfig Uses

func (sys *BucketMetadataSys) GetReplicationConfig(ctx context.Context, bucket string) (*replication.Config, error)

GetReplicationConfig returns configured bucket replication config The returned object may not be modified.

func (*BucketMetadataSys) GetSSEConfig Uses

func (sys *BucketMetadataSys) GetSSEConfig(bucket string) (*bucketsse.BucketSSEConfig, error)

GetSSEConfig returns configured SSE config The returned object may not be modified.

func (*BucketMetadataSys) GetTaggingConfig Uses

func (sys *BucketMetadataSys) GetTaggingConfig(bucket string) (*tags.Tags, error)

GetTaggingConfig returns configured tagging config The returned object may not be modified.

func (*BucketMetadataSys) GetVersioningConfig Uses

func (sys *BucketMetadataSys) GetVersioningConfig(bucket string) (*versioning.Versioning, error)

GetVersioningConfig returns configured versioning config The returned object may not be modified.

func (*BucketMetadataSys) Init Uses

func (sys *BucketMetadataSys) Init(ctx context.Context, buckets []BucketInfo, objAPI ObjectLayer) error

Init - initializes bucket metadata system for all buckets.

func (*BucketMetadataSys) Remove Uses

func (sys *BucketMetadataSys) Remove(bucket string)

Remove bucket metadata from memory.

func (*BucketMetadataSys) Set Uses

func (sys *BucketMetadataSys) Set(bucket string, meta BucketMetadata)

Set - sets a new metadata in-memory. Only a shallow copy is saved and fields with references cannot be modified without causing a race condition, so they should be replaced atomically and not appended to, etc. Data is not persisted to disk.

func (*BucketMetadataSys) Update Uses

func (sys *BucketMetadataSys) Update(bucket string, configFile string, configData []byte) error

Update update bucket metadata for the specified config file. The configData data should not be modified after being sent here.

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 BucketObjectLockConfigNotFound Uses

type BucketObjectLockConfigNotFound GenericError

BucketObjectLockConfigNotFound - no bucket object lock config found

func (BucketObjectLockConfigNotFound) Error Uses

func (e BucketObjectLockConfigNotFound) Error() string

type BucketObjectLockSys Uses

type BucketObjectLockSys struct{}

BucketObjectLockSys - map of bucket and retention configuration.

func NewBucketObjectLockSys Uses

func NewBucketObjectLockSys() *BucketObjectLockSys

NewBucketObjectLockSys returns initialized BucketObjectLockSys

func (*BucketObjectLockSys) Get Uses

func (sys *BucketObjectLockSys) Get(bucketName string) (r objectlock.Retention, err error)

Get - Get retention configuration.

type BucketOptions Uses

type BucketOptions struct {
    Location          string
    LockEnabled       bool
    VersioningEnabled bool
}

BucketOptions represents bucket options for ObjectLayer bucket operations

type BucketPolicyNotFound Uses

type BucketPolicyNotFound GenericError

BucketPolicyNotFound - no bucket policy found.

func (BucketPolicyNotFound) Error Uses

func (e BucketPolicyNotFound) Error() string

type BucketQuotaConfigNotFound Uses

type BucketQuotaConfigNotFound GenericError

BucketQuotaConfigNotFound - no bucket quota config found.

func (BucketQuotaConfigNotFound) Error Uses

func (e BucketQuotaConfigNotFound) Error() string

type BucketQuotaExceeded Uses

type BucketQuotaExceeded GenericError

BucketQuotaExceeded - bucket quota exceeded.

func (BucketQuotaExceeded) Error Uses

func (e BucketQuotaExceeded) Error() string

type BucketQuotaSys Uses

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

BucketQuotaSys - map of bucket and quota configuration.

func NewBucketQuotaSys Uses

func NewBucketQuotaSys() *BucketQuotaSys

NewBucketQuotaSys returns initialized BucketQuotaSys

func (*BucketQuotaSys) Get Uses

func (sys *BucketQuotaSys) Get(bucketName string) (*madmin.BucketQuota, error)

Get - Get quota configuration.

type BucketRemoteAlreadyExists Uses

type BucketRemoteAlreadyExists GenericError

BucketRemoteAlreadyExists remote already exists for this target type.

func (BucketRemoteAlreadyExists) Error Uses

func (e BucketRemoteAlreadyExists) Error() string

type BucketRemoteArnInvalid Uses

type BucketRemoteArnInvalid GenericError

BucketRemoteArnInvalid arn needs to be specified.

func (BucketRemoteArnInvalid) Error Uses

func (e BucketRemoteArnInvalid) Error() string

type BucketRemoteArnTypeInvalid Uses

type BucketRemoteArnTypeInvalid GenericError

BucketRemoteArnTypeInvalid arn type for remote is not valid.

func (BucketRemoteArnTypeInvalid) Error Uses

func (e BucketRemoteArnTypeInvalid) Error() string

type BucketRemoteConnectionErr Uses

type BucketRemoteConnectionErr GenericError

BucketRemoteConnectionErr remote target connection failure.

func (BucketRemoteConnectionErr) Error Uses

func (e BucketRemoteConnectionErr) Error() string

type BucketRemoteDestinationNotFound Uses

type BucketRemoteDestinationNotFound GenericError

BucketRemoteDestinationNotFound bucket does not exist.

func (BucketRemoteDestinationNotFound) Error Uses

func (e BucketRemoteDestinationNotFound) Error() string

type BucketRemoteLabelInUse Uses

type BucketRemoteLabelInUse GenericError

BucketRemoteLabelInUse remote already exists for this target label.

func (BucketRemoteLabelInUse) Error Uses

func (e BucketRemoteLabelInUse) Error() string

type BucketRemoteRemoveDisallowed Uses

type BucketRemoteRemoveDisallowed GenericError

BucketRemoteRemoveDisallowed when replication configuration exists

func (BucketRemoteRemoveDisallowed) Error Uses

func (e BucketRemoteRemoveDisallowed) Error() string

type BucketRemoteTargetNotFound Uses

type BucketRemoteTargetNotFound GenericError

BucketRemoteTargetNotFound remote target does not exist.

func (BucketRemoteTargetNotFound) Error Uses

func (e BucketRemoteTargetNotFound) Error() string

type BucketRemoteTargetNotVersioned Uses

type BucketRemoteTargetNotVersioned GenericError

BucketRemoteTargetNotVersioned remote target does not have versioning enabled.

func (BucketRemoteTargetNotVersioned) Error Uses

func (e BucketRemoteTargetNotVersioned) Error() string

type BucketReplicationConfigNotFound Uses

type BucketReplicationConfigNotFound GenericError

BucketReplicationConfigNotFound - no bucket replication config found

func (BucketReplicationConfigNotFound) Error Uses

func (e BucketReplicationConfigNotFound) Error() string

type BucketReplicationDestinationMissingLock Uses

type BucketReplicationDestinationMissingLock GenericError

BucketReplicationDestinationMissingLock bucket does not have object lock enabled.

func (BucketReplicationDestinationMissingLock) Error Uses

func (e BucketReplicationDestinationMissingLock) Error() string

type BucketReplicationSourceNotVersioned Uses

type BucketReplicationSourceNotVersioned GenericError

BucketReplicationSourceNotVersioned replication source does not have versioning enabled.

func (BucketReplicationSourceNotVersioned) Error Uses

func (e BucketReplicationSourceNotVersioned) Error() string

type BucketSSEConfigNotFound Uses

type BucketSSEConfigNotFound GenericError

BucketSSEConfigNotFound - no bucket encryption found

func (BucketSSEConfigNotFound) Error Uses

func (e BucketSSEConfigNotFound) Error() string

type BucketSSEConfigSys Uses

type BucketSSEConfigSys struct{}

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) (*bucketsse.BucketSSEConfig, error)

Get - gets bucket encryption config for the given bucket.

type BucketTaggingNotFound Uses

type BucketTaggingNotFound GenericError

BucketTaggingNotFound - no bucket tags found

func (BucketTaggingNotFound) Error Uses

func (e BucketTaggingNotFound) Error() string

type BucketTargetSys Uses

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

BucketTargetSys represents bucket targets subsystem

func NewBucketTargetSys Uses

func NewBucketTargetSys() *BucketTargetSys

NewBucketTargetSys - creates new replication system.

func (*BucketTargetSys) GetRemoteArnWithLabel Uses

func (sys *BucketTargetSys) GetRemoteArnWithLabel(ctx context.Context, bucket, tgtLabel string) *madmin.ARN

GetRemoteArnWithLabel returns bucket target's ARN given its target label

func (*BucketTargetSys) GetRemoteLabelWithArn Uses

func (sys *BucketTargetSys) GetRemoteLabelWithArn(ctx context.Context, bucket, arnStr string) string

GetRemoteLabelWithArn returns a bucket target's label given its ARN

func (*BucketTargetSys) GetRemoteTargetClient Uses

func (sys *BucketTargetSys) GetRemoteTargetClient(ctx context.Context, arn string) *miniogo.Core

GetRemoteTargetClient returns minio-go client for replication target instance

func (*BucketTargetSys) GetRemoteTargetWithLabel Uses

func (sys *BucketTargetSys) GetRemoteTargetWithLabel(ctx context.Context, bucket, targetLabel string) *madmin.BucketTarget

GetRemoteTargetWithLabel returns bucket target given a target label

func (*BucketTargetSys) Init Uses

func (sys *BucketTargetSys) Init(ctx context.Context, buckets []BucketInfo, objAPI ObjectLayer) error

Init initializes the bucket targets subsystem for buckets which have targets configured.

func (*BucketTargetSys) ListBucketTargets Uses

func (sys *BucketTargetSys) ListBucketTargets(ctx context.Context, bucket string) (*madmin.BucketTargets, error)

ListBucketTargets - gets list of bucket targets for this bucket.

func (*BucketTargetSys) ListTargets Uses

func (sys *BucketTargetSys) ListTargets(ctx context.Context, bucket, arnType string) (targets []madmin.BucketTarget)

ListTargets lists bucket targets across tenant or for individual bucket, and returns results filtered by arnType

func (*BucketTargetSys) RemoveTarget Uses

func (sys *BucketTargetSys) RemoveTarget(ctx context.Context, bucket, arnStr string) error

RemoveTarget - removes a remote bucket target for this source bucket.

func (*BucketTargetSys) SetTarget Uses

func (sys *BucketTargetSys) SetTarget(ctx context.Context, bucket string, tgt *madmin.BucketTarget, update bool) error

SetTarget - sets a new minio-go client target for this bucket.

func (*BucketTargetSys) UpdateAllTargets Uses

func (sys *BucketTargetSys) UpdateAllTargets(bucket string, tgts *madmin.BucketTargets)

UpdateAllTargets updates target to reflect metadata updates

type BucketUsageInfo Uses

type BucketUsageInfo struct {
    Size                   uint64            `json:"size"`
    ReplicationPendingSize uint64            `json:"objectsPendingReplicationTotalSize"`
    ReplicationFailedSize  uint64            `json:"objectsFailedReplicationTotalSize"`
    ReplicatedSize         uint64            `json:"objectsReplicatedTotalSize"`
    ReplicaSize            uint64            `json:"objectReplicaTotalSize"`
    ObjectsCount           uint64            `json:"objectsCount"`
    ObjectSizesHistogram   map[string]uint64 `json:"objectsSizesHistogram"`
}

BucketUsageInfo - bucket usage info provides - total size of the bucket - total objects in a bucket - object size histogram per bucket

type BucketVersioningSys Uses

type BucketVersioningSys struct{}

BucketVersioningSys - policy subsystem.

func NewBucketVersioningSys Uses

func NewBucketVersioningSys() *BucketVersioningSys

NewBucketVersioningSys - creates new versioning system.

func (*BucketVersioningSys) Enabled Uses

func (sys *BucketVersioningSys) Enabled(bucket string) bool

Enabled enabled versioning?

func (*BucketVersioningSys) Get Uses

func (sys *BucketVersioningSys) Get(bucket string) (*versioning.Versioning, error)

Get returns stored bucket policy

func (*BucketVersioningSys) Suspended Uses

func (sys *BucketVersioningSys) Suspended(bucket string) bool

Suspended suspended versioning?

type CacheChecksumInfoV1 Uses

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

CacheChecksumInfoV1 - carries checksums of individual blocks on disk.

type CacheDiskStats Uses

type CacheDiskStats struct {
    // used cache size
    UsageSize uint64
    // total cache disk capacity
    TotalCapacity uint64
    // indicates if usage is high or low, if high value is '1', if low its '0'
    UsageState int32
    // indicates the current usage percentage of this cache disk
    UsagePercent uint64
    Dir          string
}

CacheDiskStats represents cache disk statistics such as current disk usage and available.

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, opts ObjectOptions) (ObjectInfo, error)
    DeleteObjects(ctx context.Context, bucket string, objects []ObjectToDelete, opts ObjectOptions) ([]DeletedObject, []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  uint64
    Hits         uint64
    Misses       uint64
    GetDiskStats func() []CacheDiskStats
}

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 CheckPreconditionFn Uses

type CheckPreconditionFn func(o ObjectInfo) bool

CheckPreconditionFn returns true if precondition check failed.

type ChecksumAlgo Uses

type ChecksumAlgo uint8

ChecksumAlgo defines common type of different checksum algorithms

const (
    HighwayHash ChecksumAlgo = 1
)

List of currently supported checksum algorithms

func (*ChecksumAlgo) DecodeMsg Uses

func (z *ChecksumAlgo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (ChecksumAlgo) EncodeMsg Uses

func (z ChecksumAlgo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (ChecksumAlgo) MarshalMsg Uses

func (z ChecksumAlgo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (ChecksumAlgo) Msgsize Uses

func (z ChecksumAlgo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*ChecksumAlgo) UnmarshalMsg Uses

func (z *ChecksumAlgo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type ChecksumInfo Uses

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

ChecksumInfo - carries checksums of individual scattered parts per disk.

func (*ChecksumInfo) DecodeMsg Uses

func (z *ChecksumInfo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*ChecksumInfo) EncodeMsg Uses

func (z *ChecksumInfo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (ChecksumInfo) MarshalJSON Uses

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

MarshalJSON marshals the ChecksumInfo struct

func (*ChecksumInfo) MarshalMsg Uses

func (z *ChecksumInfo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*ChecksumInfo) Msgsize Uses

func (z *ChecksumInfo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*ChecksumInfo) UnmarshalJSON Uses

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

UnmarshalJSON - custom checksum info unmarshaller

func (*ChecksumInfo) UnmarshalMsg Uses

func (z *ChecksumInfo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

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.

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"`

    // Objects total count across all buckets
    ObjectsTotalCount uint64 `json:"objectsCount"`

    // Objects total size across all buckets
    ObjectsTotalSize uint64 `json:"objectsTotalSize"`

    // Total Size for objects that have not yet been replicated
    ReplicationPendingSize uint64 `json:"objectsPendingReplicationTotalSize"`

    // Total size for objects that have witness one or more failures and will be retried
    ReplicationFailedSize uint64 `json:"objectsFailedReplicationTotalSize"`

    // Total size for objects that have been replicated to destination
    ReplicatedSize uint64 `json:"objectsReplicatedTotalSize"`

    // Total size for objects that are replicas
    ReplicaSize uint64 `json:"objectsReplicaTotalSize"`

    // Total number of buckets in this cluster
    BucketsCount uint64 `json:"bucketsCount"`

    // Buckets usage info provides following information across all buckets
    // - total size of the bucket
    // - total objects in a bucket
    // - object size histogram per bucket
    BucketsUsage map[string]BucketUsageInfo `json:"bucketsUsageInfo"`

    // Deprecated kept here for backward compatibility reasons.
    BucketSizes 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
    VersionID string `xml:"VersionId"`
}

DeleteError structure.

type DeleteMarkerMTime Uses

type DeleteMarkerMTime struct {
    time.Time
}

DeleteMarkerMTime is an embedded type containing time.Time for XML marshal

func (DeleteMarkerMTime) MarshalXML Uses

func (t DeleteMarkerMTime) MarshalXML(e *xml.Encoder, startElement xml.StartElement) error

MarshalXML encodes expiration date if it is non-zero and encodes empty string otherwise

type DeleteObjectsRequest Uses

type DeleteObjectsRequest struct {
    // Element to enable quiet mode for the request
    Quiet bool
    // List of objects to be deleted
    Objects []ObjectToDelete `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 []DeletedObject `xml:"Deleted,omitempty"`

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

DeleteObjectsResponse container for multiple object deletes.

type DeleteVersionsErrsResp Uses

type DeleteVersionsErrsResp struct {
    Errs []error
}

DeleteVersionsErrsResp - collection of delete errors for bulk version deletes

type DeletedObject Uses

type DeletedObject struct {
    DeleteMarker          bool   `xml:"DeleteMarker,omitempty"`
    DeleteMarkerVersionID string `xml:"DeleteMarkerVersionId,omitempty"`
    ObjectName            string `xml:"Key,omitempty"`
    VersionID             string `xml:"VersionId,omitempty"`

    // MinIO extensions to support delete marker replication
    // Replication status of DeleteMarker
    DeleteMarkerReplicationStatus string `xml:"DeleteMarkerReplicationStatus,omitempty"`
    // MTime of DeleteMarker on source that needs to be propagated to replica
    DeleteMarkerMTime DeleteMarkerMTime `xml:"DeleteMarkerMTime,omitempty"`
    // Status of versioned delete (of object or DeleteMarker)
    VersionPurgeStatus VersionPurgeStatusType `xml:"VersionPurgeStatus,omitempty"`
    // PurgeTransitioned is nonempty if object is in transition tier
    PurgeTransitioned string `xml:"PurgeTransitioned,omitempty"`
}

DeletedObject objects deleted

type DeletedObjectInfo Uses

type DeletedObjectInfo 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

    // Version ID of this object.
    VersionID string

    // Indicates the deleted marker is latest
    IsLatest bool
}

DeletedObjectInfo - container for list objects versions deleted objects.

type DeletedObjectVersionInfo Uses

type DeletedObjectVersionInfo struct {
    DeletedObject
    Bucket string
}

DeletedObjectVersionInfo has info on deleted object

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
    UsedInodes uint64
    FSType     string
    RootDisk   bool
    Healing    bool
    Endpoint   string
    MountPath  string
    ID         string
    Error      string // carries the error over the network
}

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

func (*DiskInfo) DecodeMsg Uses

func (z *DiskInfo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*DiskInfo) EncodeMsg Uses

func (z *DiskInfo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*DiskInfo) MarshalMsg Uses

func (z *DiskInfo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*DiskInfo) Msgsize Uses

func (z *DiskInfo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*DiskInfo) UnmarshalMsg Uses

func (z *DiskInfo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

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 Encryption Uses

type Encryption struct {
    EncryptionType sse.SSEAlgorithm `xml:"EncryptionType"`
    KMSContext     string           `xml:"KMSContext,omitempty"`
    KMSKeyID       string           `xml:"KMSKeyId,omitempty"`
}

Encryption specifies encryption setting on restored bucket

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 EndpointServerPools Uses

type EndpointServerPools []ZoneEndpoints

EndpointServerPools - list of list of endpoints

func (*EndpointServerPools) Add Uses

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

Add add zone endpoints

func (EndpointServerPools) FirstLocal Uses

func (l EndpointServerPools) FirstLocal() bool

FirstLocal returns true if the first endpoint is local.

func (EndpointServerPools) GetLocalZoneIdx Uses

func (l EndpointServerPools) GetLocalZoneIdx(ep Endpoint) int

GetLocalZoneIdx returns the zone which endpoint belongs to locally. if ep is remote this code will return -1 zoneIndex

func (EndpointServerPools) HTTPS Uses

func (l EndpointServerPools) HTTPS() bool

HTTPS - returns true if secure for URLEndpointType.

func (EndpointServerPools) Hostnames Uses

func (l EndpointServerPools) Hostnames() []string

Hostnames - returns list of unique hostnames

func (EndpointServerPools) Localhost Uses

func (l EndpointServerPools) Localhost() string

Localhost - returns the local hostname from list of endpoints

func (EndpointServerPools) NEndpoints Uses

func (l EndpointServerPools) NEndpoints() (count int)

NEndpoints - returns all nodes count

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 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) GetAllStrings Uses

func (endpoints Endpoints) GetAllStrings() (all []string)

GetAllStrings - returns allstring of all endpoints

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, prefer []bool) error

Decode reads from readers, reconstructs data if needed and writes the data to the writer. A set of preferred drives can be supplied. In that case they will be used and the data reconstructed.

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) ShardFileOffset Uses

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

ShardFileOffset - returns the effective offset where erasure reading begins.

func (*Erasure) ShardFileSize Uses

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

ShardFileSize - returns final erasure size from original size.

func (*Erasure) ShardSize Uses

func (e *Erasure) ShardSize() int64

ShardSize - returns actual shared size from erasure blockSize.

type ErasureAlgo Uses

type ErasureAlgo uint8

ErasureAlgo defines common type of different erasure algorithms

const (
    ReedSolomon ErasureAlgo = 1
)

List of currently supported erasure coding algorithms

func (*ErasureAlgo) DecodeMsg Uses

func (z *ErasureAlgo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (ErasureAlgo) EncodeMsg Uses

func (z ErasureAlgo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (ErasureAlgo) MarshalMsg Uses

func (z ErasureAlgo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (ErasureAlgo) Msgsize Uses

func (z ErasureAlgo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (ErasureAlgo) String Uses

func (e ErasureAlgo) String() string

func (*ErasureAlgo) UnmarshalMsg Uses

func (z *ErasureAlgo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

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) DecodeMsg Uses

func (z *ErasureInfo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*ErasureInfo) EncodeMsg Uses

func (z *ErasureInfo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (ErasureInfo) GetChecksumInfo Uses

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

GetChecksumInfo - get checksum of a part.

func (*ErasureInfo) MarshalMsg Uses

func (z *ErasureInfo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*ErasureInfo) Msgsize Uses

func (z *ErasureInfo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (ErasureInfo) ShardFileSize Uses

func (e ErasureInfo) ShardFileSize(totalLength int64) int64

ShardFileSize - returns final erasure size from original size.

func (ErasureInfo) ShardSize Uses

func (e ErasureInfo) ShardSize() int64

ShardSize - returns actual shared size from erasure blockSize.

func (*ErasureInfo) UnmarshalMsg Uses

func (z *ErasureInfo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

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 {
    GatewayUnsupported
    // 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, opts ObjectOptions) 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) BackendInfo Uses

func (fs *FSObjects) BackendInfo() BackendInfo

BackendInfo - returns backend information

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, bf *bloomFilter, 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) DeleteBucketPolicy Uses

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

DeleteBucketPolicy - only needed for FS in NAS mode

func (*FSObjects) DeleteObject Uses

func (fs *FSObjects) DeleteObject(ctx context.Context, bucket, object string, opts ObjectOptions) (objInfo ObjectInfo, err error)

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

func (*FSObjects) DeleteObjectTags Uses

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

DeleteObjectTags - delete object tags from an existing object

func (*FSObjects) DeleteObjects Uses

func (fs *FSObjects) DeleteObjects(ctx context.Context, bucket string, objects []ObjectToDelete, opts ObjectOptions) ([]DeletedObject, []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) GetBucketPolicy Uses

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

GetBucketPolicy - only needed for FS in NAS mode

func (*FSObjects) GetMetrics Uses

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

GetMetrics - no op

func (*FSObjects) GetMultipartInfo Uses

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

GetMultipartInfo returns multipart metadata uploaded during newMultipartUpload, used by callers to verify object states - encrypted - compressed

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) GetObjectTags Uses

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

GetObjectTags - get object tags from an existing object

func (*FSObjects) HealBucket Uses

func (fs *FSObjects) HealBucket(ctx context.Context, bucket string, opts madmin.HealOpts) (madmin.HealResultItem,
    error)

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

func (*FSObjects) HealFormat Uses

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

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

func (*FSObjects) HealObject Uses

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

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

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 Erasure.

func (*FSObjects) Health Uses

func (fs *FSObjects) Health(ctx context.Context, opts HealthOptions) HealthResult

Health returns health of the object layer

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) IsListenSupported Uses

func (fs *FSObjects) IsListenSupported() bool

IsListenSupported 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) IsTaggingSupported Uses

func (fs *FSObjects) IsTaggingSupported() bool

IsTaggingSupported returns true, object tagging is supported in fs object layer.

func (*FSObjects) ListBuckets Uses

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

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

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) ListObjectVersions Uses

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

ListObjectVersions not implemented for FS mode.

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 string, opts BucketOptions) 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(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) PutObjectTags Uses

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

PutObjectTags - replace or add tags to an existing object

func (*FSObjects) SetBucketPolicy Uses

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

SetBucketPolicy - only needed for FS in NAS mode

func (*FSObjects) SetDriveCount Uses

func (fs *FSObjects) SetDriveCount() int

SetDriveCount no-op

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, []error)

StorageInfo - returns underlying storage statistics.

func (*FSObjects) Walk Uses

func (fs *FSObjects) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo, opts ObjectOptions) 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

    // Version of the file.
    VersionID string

    // Indicates if the version is the latest
    IsLatest bool

    // Deleted is set when this FileInfo represents
    // a deleted marker for a versioned bucket.
    Deleted bool

    // TransitionStatus is set to Pending/Complete for transitioned
    // entries based on state of transition
    TransitionStatus string

    // DataDir of the file
    DataDir string

    // Indicates if this object is still in V1 format.
    XLV1 bool

    // Date and time when the file was last modified, if Deleted
    // is 'true' this value represents when while was deleted.
    ModTime time.Time

    // Total file size.
    Size int64

    // File mode bits.
    Mode uint32

    // File metadata
    Metadata map[string]string

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

    // Erasure info for all objects.
    Erasure ErasureInfo

    // DeleteMarkerReplicationStatus is set when this FileInfo represents
    // replication on a DeleteMarker
    MarkDeleted                   bool // mark this version as deleted
    DeleteMarkerReplicationStatus string
    VersionPurgeStatus            VersionPurgeStatusType
}

FileInfo - represents file stat information. The above means that any added/deleted fields are incompatible.

func (*FileInfo) AddObjectPart Uses

func (fi *FileInfo) AddObjectPart(partNumber int, partETag string, partSize int64, actualSize int64)

AddObjectPart - add a new object part in order.

func (*FileInfo) DecodeMsg Uses

func (z *FileInfo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*FileInfo) EncodeMsg Uses

func (z *FileInfo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (FileInfo) IsValid Uses

func (fi FileInfo) IsValid() bool

IsValid - tells if erasure info fields are valid.

func (*FileInfo) MarshalMsg Uses

func (z *FileInfo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*FileInfo) Msgsize Uses

func (z *FileInfo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (FileInfo) ObjectToPartOffset Uses

func (fi FileInfo) ObjectToPartOffset(ctx context.Context, offset int64) (partIndex int, partOffset int64, err error)

ObjectToPartOffset - translate offset of an object to offset of its individual part.

func (FileInfo) ToObjectInfo Uses

func (fi FileInfo) ToObjectInfo(bucket, object string) ObjectInfo

ToObjectInfo - Converts metadata to object info.

func (*FileInfo) UnmarshalMsg Uses

func (z *FileInfo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

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 FileInfoVersions Uses

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

    // Name of the file.
    Name string

    // Represents the latest mod time of the
    // latest version.
    LatestModTime time.Time

    Versions []FileInfo
}

FileInfoVersions represent a list of versions for a given file.

func (*FileInfoVersions) DecodeMsg Uses

func (z *FileInfoVersions) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*FileInfoVersions) EncodeMsg Uses

func (z *FileInfoVersions) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*FileInfoVersions) MarshalMsg Uses

func (z *FileInfoVersions) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*FileInfoVersions) Msgsize Uses

func (z *FileInfoVersions) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*FileInfoVersions) UnmarshalMsg Uses

func (z *FileInfoVersions) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type FileInfoVersionsCh Uses

type FileInfoVersionsCh struct {
    Ch    chan FileInfoVersions
    Prev  FileInfoVersions
    Valid bool
}

FileInfoVersionsCh - file info versions channel

func (*FileInfoVersionsCh) Pop Uses

func (f *FileInfoVersionsCh) Pop() (fi FileInfoVersions, ok bool)

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

func (*FileInfoVersionsCh) Push Uses

func (f *FileInfoVersionsCh) Push(fi FileInfoVersions)

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.

func (*FilesInfo) DecodeMsg Uses

func (z *FilesInfo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*FilesInfo) EncodeMsg Uses

func (z *FilesInfo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*FilesInfo) MarshalMsg Uses

func (z *FilesInfo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*FilesInfo) Msgsize Uses

func (z *FilesInfo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*FilesInfo) UnmarshalMsg Uses

func (z *FilesInfo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type FilesInfoVersions Uses

type FilesInfoVersions struct {
    FilesVersions []FileInfoVersions
    IsTruncated   bool
}

FilesInfoVersions represents a list of file versions, additionally indicates if the list is last.

func (*FilesInfoVersions) DecodeMsg Uses

func (z *FilesInfoVersions) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*FilesInfoVersions) EncodeMsg Uses

func (z *FilesInfoVersions) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*FilesInfoVersions) MarshalMsg Uses

func (z *FilesInfoVersions) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*FilesInfoVersions) Msgsize Uses

func (z *FilesInfoVersions) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*FilesInfoVersions) UnmarshalMsg Uses

func (z *FilesInfoVersions) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

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 NewNSLock implementation

func (*GatewayLocker) NewNSLock Uses

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

NewNSLock - implements gateway level locker

func (*GatewayLocker) Walk Uses

func (l *GatewayLocker) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo, opts ObjectOptions) error

Walk - implements common gateway level Walker, to walk on all objects recursively at a prefix

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, opts ObjectOptions) error

AbortMultipartUpload aborts a ongoing multipart upload

func (GatewayUnsupported) BackendInfo Uses

func (a GatewayUnsupported) BackendInfo() BackendInfo

BackendInfo returns the underlying backend information

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, bf *bloomFilter, 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 policies on a 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 a bucket

func (GatewayUnsupported) DeleteObjectTags Uses

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

DeleteObjectTags - not implemented.

func (GatewayUnsupported) GetBucketLifecycle Uses

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

GetBucketLifecycle retrieves lifecycle configuration of a 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 a bucket

func (GatewayUnsupported) GetBucketVersioning Uses

func (a GatewayUnsupported) GetBucketVersioning(ctx context.Context, bucket string) (*versioning.Versioning, error)

GetBucketVersioning retrieves versioning configuration of a bucket.

func (GatewayUnsupported) GetMetrics Uses

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

GetMetrics - no op

func (GatewayUnsupported) GetMultipartInfo Uses

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

GetMultipartInfo returns metadata associated with the uploadId

func (GatewayUnsupported) GetObjectTags Uses

func (a GatewayUnsupported) GetObjectTags(ctx context.Context, bucket, object string, opts ObjectOptions) (*tags.Tags, error)

GetObjectTags - not implemented.

func (GatewayUnsupported) HealBucket Uses

func (a GatewayUnsupported) HealBucket(ctx context.Context, bucket string, opts madmin.HealOpts) (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, versionID 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) Health Uses

func (a GatewayUnsupported) Health(_ context.Context, _ HealthOptions) HealthResult

Health - No Op.

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) IsListenSupported Uses

func (a GatewayUnsupported) IsListenSupported() bool

IsListenSupported 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) IsTaggingSupported Uses

func (a GatewayUnsupported) IsTaggingSupported() bool

IsTaggingSupported returns whether object tagging is supported or not for this layer.

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) ListObjectVersions Uses

func (a GatewayUnsupported) ListObjectVersions(ctx context.Context, bucket, prefix, marker, versionMarker, delimiter string, maxKeys int) (ListObjectVersionsInfo, error)

ListObjectVersions 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(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) PutObjectTags Uses

func (a GatewayUnsupported) PutObjectTags(ctx context.Context, bucket, object string, tags string, opts ObjectOptions) error

PutObjectTags - not implemented.

func (GatewayUnsupported) SetBucketLifecycle Uses

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

SetBucketLifecycle enables lifecycle policies on a 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 a bucket

func (GatewayUnsupported) SetBucketVersioning Uses

func (a GatewayUnsupported) SetBucketVersioning(ctx context.Context, bucket string, v *versioning.Versioning) error

SetBucketVersioning enables versioning on a bucket.

func (GatewayUnsupported) SetDriveCount Uses

func (a GatewayUnsupported) SetDriveCount() int

SetDriveCount no-op

func (GatewayUnsupported) Walk Uses

func (a GatewayUnsupported) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo, opts ObjectOptions) 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
    VersionID string
    Err       error
}

GenericError - generic object layer error.

func (GenericError) Unwrap Uses

func (e GenericError) Unwrap() error

Unwrap the error to its underlying 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 GetObjectInfoFn Uses

type GetObjectInfoFn func(ctx context.Context, bucket, object string, opts ObjectOptions) (ObjectInfo, 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, opts ObjectOptions, 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) Content Uses

func (sys *HTTPConsoleLoggerSys) Content() (logs []log.Entry)

Content returns the console stdout log

func (*HTTPConsoleLoggerSys) Endpoint Uses

func (sys *HTTPConsoleLoggerSys) Endpoint() string

Endpoint - dummy function for interface compatibility

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(endpointServerPools EndpointServerPools)

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

func (*HTTPConsoleLoggerSys) String Uses

func (sys *HTTPConsoleLoggerSys) String() string

String - stringer function for interface compatibility

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.

func (*HTTPConsoleLoggerSys) Validate Uses

func (sys *HTTPConsoleLoggerSys) Validate() error

Validate if HTTPConsoleLoggerSys is valid, always returns nil right now

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 HealObjectFn Uses

type HealObjectFn func(bucket, object, versionID string) error

HealObjectFn closure function heals the object.

type HealthOptions Uses

type HealthOptions struct {
    Maintenance bool
}

HealthOptions takes input options to return sepcific information

type HealthResult Uses

type HealthResult struct {
    Healthy       bool
    HealingDrives int
    ZoneID, SetID int
    WriteQuorum   int
}

HealthResult returns the current state of the system, also additionally with any specific heuristic information which was queried

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.Mutex
    // 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) CurrentPolicies Uses

func (sys *IAMSys) CurrentPolicies(policyName string) string

CurrentPolicies - returns comma separated policy string, from an input policy after validating if there are any current policies which exist on MinIO corresponding to the input.

func (*IAMSys) DeletePolicy Uses

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

DeletePolicy - deletes a canned policy from backend or etcd.

func (*IAMSys) DeleteServiceAccount Uses

func (sys *IAMSys) DeleteServiceAccount(ctx context.Context, accessKey string) error

DeleteServiceAccount - delete a service account

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) GetCombinedPolicy Uses

func (sys *IAMSys) GetCombinedPolicy(policies ...string) iampolicy.Policy

GetCombinedPolicy returns a combined policy combining all policies

func (*IAMSys) GetGroupDescription Uses

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

GetGroupDescription - builds up group description

func (*IAMSys) GetServiceAccountParent Uses

func (sys *IAMSys) GetServiceAccountParent(ctx context.Context, accessKey string) (string, error)

GetServiceAccountParent - gets information about a 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) (iampolicy.Policy, error)

InfoPolicy - expands the canned policy into its JSON structure.

func (*IAMSys) Init Uses

func (sys *IAMSys) Init(ctx context.Context, objAPI ObjectLayer)

Init - initializes config system by reading entries from config/iam

func (*IAMSys) InitStore Uses

func (sys *IAMSys) InitStore(objAPI ObjectLayer)

InitStore initializes IAM stores

func (*IAMSys) Initialized Uses

func (sys *IAMSys) Initialized() bool

Initialized check if IAM is initialized

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) IsAllowedLDAPSTS Uses

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

IsAllowedLDAPSTS - checks for LDAP specific claims and values

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]iampolicy.Policy, error)

ListPolicies - lists all canned policies.

func (*IAMSys) ListServiceAccounts Uses

func (sys *IAMSys) ListServiceAccounts(ctx context.Context, accessKey string) ([]string, error)

ListServiceAccounts - lists all services accounts associated to a specific user

func (*IAMSys) ListUsers Uses

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

ListUsers - list all users.

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) LoadServiceAccount Uses

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

LoadServiceAccount - reloads a specific service account from backend disks or etcd.

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 string, sessionPolicy *iampolicy.Policy) (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.

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 GenericError

InsufficientReadQuorum storage cannot satisfy quorum for read operation.

func (InsufficientReadQuorum) Error Uses

func (e InsufficientReadQuorum) Error() string

func (InsufficientReadQuorum) Unwrap Uses

func (e InsufficientReadQuorum) Unwrap() error

Unwrap the error.

type InsufficientWriteQuorum Uses

type InsufficientWriteQuorum GenericError

InsufficientWriteQuorum storage cannot satisfy quorum for write operation.

func (InsufficientWriteQuorum) Error Uses

func (e InsufficientWriteQuorum) Error() string

func (InsufficientWriteQuorum) Unwrap Uses

func (e InsufficientWriteQuorum) Unwrap() error

Unwrap the error.

type InvalidArgument Uses

type InvalidArgument GenericError

InvalidArgument incorrect input argument

func (InvalidArgument) Error Uses

func (e InvalidArgument) 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 InvalidVersionID Uses

type InvalidVersionID GenericError

InvalidVersionID invalid version id

func (InvalidVersionID) Error Uses

func (e InvalidVersionID) Error() string

type IsLeafDirFunc Uses

type IsLeafDirFunc func(string, string) bool

IsLeafDirFunc - A function isLeafDir of type isLeafDirFunc is used to detect if an entry is empty directory.

type IsLeafFunc Uses

type IsLeafFunc func(string, string) bool

IsLeafFunc - A function isLeaf of type isLeafFunc is used to detect if an entry is a leaf entry. There are 2 scenarios where isLeaf should behave differently depending on the backend: 1. FS backend object listing - isLeaf is true if the entry

has no trailing "/"

2. Erasure backend object listing - isLeaf is true if the entry

is a directory and contains xl.meta

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{}

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, err error)

Get - gets lifecycle config associated to a 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, delayIsLeaf bool)

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 ListObjectVersionsInfo Uses

type ListObjectVersionsInfo 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

    // NextVersionIDMarker may be set of IsTruncated is true
    NextVersionIDMarker string

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

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

ListObjectVersionsInfo - container for list objects versions.

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
}

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 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"`
    Policies string `json:"policy"`
}

MappedPolicy represents a policy name mapped to a user or group

type MetadataEntry Uses

type MetadataEntry struct {
    Name  string `xml:"Name"`
    Value string `xml:"Value"`
}

MetadataEntry denotes name and value.

type MethodNotAllowed Uses

type MethodNotAllowed GenericError

MethodNotAllowed on the object

func (MethodNotAllowed) Error Uses

func (e MethodNotAllowed) Error() string

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 MiddlewareFunc Uses

type MiddlewareFunc func(http.Handler) http.Handler

MiddlewareFunc - useful to chain different http.Handler middlewares

type MultipartInfo Uses

type MultipartInfo 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

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

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

MultipartInfo captures metadata information about the uploadId this data structure is used primarily for some internal purposes for verifying upload type such as was the upload - encrypted - compressed

type NotImplemented Uses

type NotImplemented struct {
    API string
}

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 EndpointServerPools) *NotificationSys

NewNotificationSys - creates new notification system object.

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, []NotificationPeerErr)

BackgroundHealStatus - returns background heal status of all peers

func (*NotificationSys) CPUInfo Uses

func (sys *NotificationSys) CPUInfo(ctx context.Context) []madmin.ServerCPUInfo

CPUInfo - CPU information

func (*NotificationSys) ConfiguredTargetIDs Uses

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

ConfiguredTargetIDs - returns list of configured target id's

func (*NotificationSys) DeleteBucketMetadata Uses

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

DeleteBucketMetadata - calls DeleteBucketMetadata call on all peers

func (*NotificationSys) DeletePolicy Uses

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

DeletePolicy - deletes policy across all peers.

func (*NotificationSys) DeleteServiceAccount Uses

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

DeleteServiceAccount - deletes a specific service account across all peers

func (*NotificationSys) DeleteUser Uses

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

DeleteUser - deletes a specific user across all peers

func (*NotificationSys) DiskHwInfo Uses

func (sys *NotificationSys) DiskHwInfo(ctx context.Context) []madmin.ServerDiskHwInfo

DiskHwInfo - Disk HW information

func (*NotificationSys) DispatchNetPerfChan Uses

func (sys *NotificationSys) DispatchNetPerfChan(ctx context.Context) chan madmin.ServerNetHealthInfo

DispatchNetPerfChan - Net perf information from other nodes

func (*NotificationSys) DispatchNetPerfInfo Uses

func (sys *NotificationSys) DispatchNetPerfInfo(ctx context.Context) []madmin.ServerNetHealthInfo

DispatchNetPerfInfo - Net perf 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) DrivePerfInfo Uses

func (sys *NotificationSys) DrivePerfInfo(ctx context.Context) []madmin.ServerDrivesInfo

DrivePerfInfo - Drive perf information

func (*NotificationSys) DrivePerfInfoChan Uses

func (sys *NotificationSys) DrivePerfInfoChan(ctx context.Context) chan madmin.ServerDrivesInfo

DrivePerfInfoChan - Drive perf information

func (*NotificationSys) GetARNList Uses

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

GetARNList - returns available ARNs.

func (*NotificationSys) GetBandwidthReports Uses

func (sys *NotificationSys) GetBandwidthReports(ctx context.Context, buckets ...string) bandwidth.Report

GetBandwidthReports - gets the bandwidth report from all nodes including self.

func (*NotificationSys) GetLocalDiskIDs Uses

func (sys *NotificationSys) GetLocalDiskIDs(ctx context.Context) (localDiskIDs [][]string)

GetLocalDiskIDs - return disk ids of the local disks of the peers.

func (*NotificationSys) GetLocks Uses

func (sys *NotificationSys) GetLocks(ctx context.Context, r *http.Request) []*PeerLocks

GetLocks - makes GetLocks RPC call on all peers.

func (*NotificationSys) Init Uses

func (sys *NotificationSys) Init(ctx context.Context, buckets []BucketInfo, objAPI ObjectLayer) error

Init - initializes notification system from notification.xml and listenxl.meta of all buckets.

func (*NotificationSys) LoadBucketMetadata Uses

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

LoadBucketMetadata - calls LoadBucketMetadata call on all peers

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) LoadServiceAccount Uses

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

LoadServiceAccount - reloads a specific service account 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) MemInfo Uses

func (sys *NotificationSys) MemInfo(ctx context.Context) []madmin.ServerMemInfo

MemInfo - Mem information

func (*NotificationSys) NetInfo Uses

func (sys *NotificationSys) NetInfo(ctx context.Context) madmin.ServerNetHealthInfo

NetInfo - Net information

func (*NotificationSys) NetPerfParallelInfo Uses

func (sys *NotificationSys) NetPerfParallelInfo(ctx context.Context) madmin.ServerNetHealthInfo

NetPerfParallelInfo - Performs Net parallel tests

func (*NotificationSys) OsInfo Uses

func (sys *NotificationSys) OsInfo(ctx context.Context) []madmin.ServerOsInfo

OsInfo - Os information

func (*NotificationSys) ProcInfo Uses

func (sys *NotificationSys) ProcInfo(ctx context.Context) []madmin.ServerProcInfo

ProcInfo - Process information

func (*NotificationSys) RemoveAllRemoteTargets Uses

func (sys *NotificationSys) RemoveAllRemoteTargets()

RemoveAllRemoteTargets - closes and removes all notification targets.

func (*NotificationSys) RemoveNotification Uses

func (sys *NotificationSys) RemoveNotification(bucketName string)

RemoveNotification - removes all notification configuration for bucket name.

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)

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(ctx context.Context, u *url.URL, sha256Sum []byte, lrTime time.Time) []NotificationPeerErr

ServerUpdate - updates remote 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 CheckPreconditionFn, 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, opts ObjectOptions, 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 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

    // The ETag stored in the gateway backend
    InnerETag string

    // Version ID of this object.
    VersionID string

    // IsLatest indicates if this is the latest current version
    // latest can be true for delete marker or a version.
    IsLatest bool

    // DeleteMarker indicates if the versionId corresponds
    // to a delete marker on an object.
    DeleteMarker bool

    // TransitionStatus indicates if transition is complete/pending
    TransitionStatus string

    // RestoreExpires indicates date a restored object expires
    RestoreExpires time.Time

    // RestoreOngoing indicates if a restore is in progress
    RestoreOngoing bool

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

    ReplicationStatus replication.StatusType
    // 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

    Legacy bool // indicates object on disk is in legacy data format

    VersionPurgeStatus VersionPurgeStatusType
    // 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) GetActualETag Uses

func (o ObjectInfo) GetActualETag(h http.Header) string

GetActualETag - returns the actual etag of the stored object decrypts SSE objects.

func (ObjectInfo) GetActualSize Uses

func (o ObjectInfo) GetActualSize() (int64, error)

GetActualSize - returns the actual size of the stored object

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 {
    SetDriveCount() int // Only implemented by erasure layer

    // Locking operations on object.
    NewNSLock(bucket string, objects ...string) RWLocker

    // Storage operations.
    Shutdown(context.Context) error
    CrawlAndGetDataUsage(ctx context.Context, bf *bloomFilter, updates chan<- DataUsageInfo) error

    BackendInfo() BackendInfo
    StorageInfo(ctx context.Context, local bool) (StorageInfo, []error) // local queries only local disks

    // Bucket operations.
    MakeBucketWithLocation(ctx context.Context, bucket string, opts BucketOptions) 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)
    ListObjectVersions(ctx context.Context, bucket, prefix, marker, versionMarker, delimiter string, maxKeys int) (result ListObjectVersionsInfo, err error)
    // Walk lists all objects including versions, delete markers.
    Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo, opts ObjectOptions) 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, opts ObjectOptions) (ObjectInfo, error)
    DeleteObjects(ctx context.Context, bucket string, objects []ObjectToDelete, opts ObjectOptions) ([]DeletedObject, []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)
    GetMultipartInfo(ctx context.Context, bucket, object, uploadID string, opts ObjectOptions) (info MultipartInfo, 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, opts ObjectOptions) error
    CompleteMultipartUpload(ctx context.Context, bucket, object, uploadID string, uploadedParts []CompletePart, opts ObjectOptions) (objInfo ObjectInfo, err error)

    // Healing operations.
    HealFormat(ctx context.Context, dryRun bool) (madmin.HealResultItem, error)
    HealBucket(ctx context.Context, bucket string, opts madmin.HealOpts) (madmin.HealResultItem, error)
    HealObject(ctx context.Context, bucket, object, versionID string, opts madmin.HealOpts) (madmin.HealResultItem, error)
    HealObjects(ctx context.Context, bucket, prefix string, opts madmin.HealOpts, fn HealObjectFn) 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
    IsListenSupported() bool
    IsEncryptionSupported() bool
    IsTaggingSupported() bool
    IsCompressionSupported() bool

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

    // Returns health of the backend
    Health(ctx context.Context, opts HealthOptions) HealthResult

    // ObjectTagging operations
    PutObjectTags(context.Context, string, string, string, ObjectOptions) error
    GetObjectTags(context.Context, string, string, ObjectOptions) (*tags.Tags, error)
    DeleteObjectTags(context.Context, string, string, ObjectOptions) 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
    VersionSuspended     bool      // indicates if the bucket was previously versioned but is currently suspended.
    Versioned            bool      // indicates if the bucket is versioned
    WalkVersions         bool      // indicates if the we are interested in walking versions
    VersionID            string    // Specifies the versionID which needs to be overwritten or read
    MTime                time.Time // Is only set in POST/PUT operations
    Expires              time.Time // Is only used in POST/PUT operations

    DeleteMarker                  bool                   // Is only set in DELETE operations for delete marker replication
    UserDefined                   map[string]string      // only set in case of POST/PUT operations
    PartNumber                    int                    // only useful in case of GetObject/HeadObject
    CheckPrecondFn                CheckPreconditionFn    // only set during GetObject/HeadObject/CopyObjectPart preconditional valuation
    DeleteMarkerReplicationStatus string                 // Is only set in DELETE operations
    VersionPurgeStatus            VersionPurgeStatusType // Is only set in DELETE operations for delete marker version to be permanently deleted.
    TransitionStatus              string                 // status of the transition
    NoLock                        bool                   // indicates to lower layers if the caller is expecting to hold locks.
}

ObjectOptions represents object options for ObjectLayer object 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.

func (*ObjectPartInfo) DecodeMsg Uses

func (z *ObjectPartInfo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*ObjectPartInfo) EncodeMsg Uses

func (z *ObjectPartInfo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*ObjectPartInfo) MarshalMsg Uses

func (z *ObjectPartInfo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*ObjectPartInfo) Msgsize Uses

func (z *ObjectPartInfo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*ObjectPartInfo) UnmarshalMsg Uses

func (z *ObjectPartInfo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type ObjectToDelete Uses

type ObjectToDelete struct {
    ObjectName string `xml:"Key"`
    VersionID  string `xml:"VersionId"`
    // Replication status of DeleteMarker
    DeleteMarkerReplicationStatus string `xml:"DeleteMarkerReplicationStatus"`
    // Status of versioned delete (of object or DeleteMarker)
    VersionPurgeStatus VersionPurgeStatusType `xml:"VersionPurgeStatus"`
    // Version ID of delete marker
    DeleteMarkerVersionID string `xml:"DeleteMarkerVersionId"`
    // PurgeTransitioned is nonempty if object is in transition tier
    PurgeTransitioned string `xml:"PurgeTransitioned"`
}

ObjectToDelete carries key name for the object to delete.

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 {
    Object
    IsLatest  bool
    VersionID string `xml:"VersionId"`
    // contains filtered or unexported fields
}

ObjectVersion container for object version metadata

func (ObjectVersion) MarshalXML Uses

func (o ObjectVersion) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML - marshal ObjectVersion

type OperationTimedOut Uses

type OperationTimedOut struct {
}

OperationTimedOut - a timeout occurred.

func (OperationTimedOut) Error Uses

func (e OperationTimedOut) Error() string

type OutputLocation Uses

type OutputLocation struct {
    S3 S3Location `xml:"S3,omitempty"`
}

OutputLocation specifies bucket where object needs to be restored

func (*OutputLocation) IsEmpty Uses

func (o *OutputLocation) IsEmpty() bool

IsEmpty returns true if output location not specified.

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 map[string][]lockRequesterInfo
}

PeerLocks holds server information result of one node

type PolicySys Uses

type PolicySys struct{}

PolicySys - policy subsystem.

func NewPolicySys Uses

func NewPolicySys() *PolicySys

NewPolicySys - creates new policy system.

func (*PolicySys) Get Uses

func (sys *PolicySys) Get(bucket string) (*policy.Policy, error)

Get returns stored bucket policy

func (*PolicySys) IsAllowed Uses

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

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

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 ProxyEndpoint Uses

type ProxyEndpoint struct {
    Endpoint
    Transport http.RoundTripper
}

ProxyEndpoint - endpoint used for proxy redirects See proxyRequest() for details.

func GetProxyEndpoints Uses

func GetProxyEndpoints(endpointServerPools EndpointServerPools) []ProxyEndpoint

GetProxyEndpoints - get all endpoints that can be used to proxy list request.

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, key *crypto.ObjectKey) *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(ctx context.Context, timeout *dynamicTimeout) (timedOutErr error)
    Unlock()
    GetRLock(ctx context.Context, 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  uint64 `json:"Get"`
    Head uint64 `json:"Head"`
    Put  uint64 `json:"Put"`
    Post uint64 `json:"Post"`
}

RequestStats - counts for Get and Head requests

type RestoreObjectRequest Uses

type RestoreObjectRequest struct {
    XMLName          xml.Name           `xml:"http://s3.amazonaws.com/doc/2006-03-01/ RestoreRequest" json:"-"`
    Days             int                `xml:"Days,omitempty"`
    Type             RestoreRequestType `xml:"Type,omitempty"`
    Tier             string             `xml:"Tier,-"`
    Description      string             `xml:"Description,omitempty"`
    SelectParameters *SelectParameters  `xml:"SelectParameters,omitempty"`
    OutputLocation   OutputLocation     `xml:"OutputLocation,omitempty"`
}

RestoreObjectRequest - xml to restore a transitioned object

type RestoreRequestType Uses

type RestoreRequestType string

RestoreRequestType represents type of restore.

const (
    // SelectRestoreRequest specifies select request. This is the only valid value
    SelectRestoreRequest RestoreRequestType = "SELECT"
)

type S3Location Uses

type S3Location struct {
    BucketName   string          `xml:"BucketName,omitempty"`
    Encryption   Encryption      `xml:"Encryption,omitempty"`
    Prefix       string          `xml:"Prefix,omitempty"`
    StorageClass string          `xml:"StorageClass,omitempty"`
    Tagging      *tags.Tags      `xml:"Tagging,omitempty"`
    UserMetadata []MetadataEntry `xml:"UserMetadata"`
}

S3Location specifies s3 location that receives result of a restore object request

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
    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 SelectParameters Uses

type SelectParameters struct {
    s3select.S3Select
}

SelectParameters specifies sql select parameters

func (*SelectParameters) IsEmpty Uses

func (sp *SelectParameters) IsEmpty() bool

IsEmpty returns true if no select parameters set

func (*SelectParameters) UnmarshalXML Uses

func (sp *SelectParameters) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error

UnmarshalXML - decodes XML data.

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 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 EndpointServerPools
}

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

    // ErasureSetupType - Erasure setup type enum.
    ErasureSetupType

    // DistErasureSetupType - Distributed Erasure setup type enum.
    DistErasureSetupType

    // 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 {
    Size    int64     `json:"size"`    // Size of the object `xl.meta`.
    ModTime time.Time `json:"modTime"` // ModTime of the object `xl.meta`.
}

StatInfo - carries stat information of the object.

func (*StatInfo) DecodeMsg Uses

func (z *StatInfo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (StatInfo) EncodeMsg Uses

func (z StatInfo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (StatInfo) MarshalMsg Uses

func (z StatInfo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (StatInfo) Msgsize Uses

func (z StatInfo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*StatInfo) UnmarshalMsg Uses

func (z *StatInfo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type StorageAPI Uses

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

    // Storage operations.
    IsOnline() bool // Returns true if disk is online.
    IsLocal() bool

    Hostname() string   // Returns host name if remote host.
    Endpoint() Endpoint // Returns endpoint.

    Close() error
    GetDiskID() (string, error)
    SetDiskID(id string)
    Healing() bool // Returns if disk is healing.

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

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

    // WalkDir will walk a directory on disk and return a metacache stream on wr.
    WalkDir(ctx context.Context, opts WalkDirOptions, wr io.Writer) error

    // WalkVersions in sorted order directly on disk.
    WalkVersions(ctx context.Context, volume, dirPath, marker string, recursive bool, endWalkCh <-chan struct{}) (chan FileInfoVersions, error)

    // Metadata operations
    DeleteVersion(ctx context.Context, volume, path string, fi FileInfo) error
    DeleteVersions(ctx context.Context, volume string, versions []FileInfo) []error
    WriteMetadata(ctx context.Context, volume, path string, fi FileInfo) error
    ReadVersion(ctx context.Context, volume, path, versionID string, checkDataDir bool) (FileInfo, error)
    RenameData(ctx context.Context, srcVolume, srcPath, dataDir, dstVolume, dstPath string) error

    // File operations.
    ListDir(ctx context.Context, volume, dirPath string, count int) ([]string, error)
    ReadFile(ctx context.Context, volume string, path string, offset int64, buf []byte, verifier *BitrotVerifier) (n int64, err error)
    AppendFile(ctx context.Context, volume string, path string, buf []byte) (err error)
    CreateFile(ctx context.Context, volume, path string, size int64, reader io.Reader) error
    ReadFileStream(ctx context.Context, volume, path string, offset, length int64) (io.ReadCloser, error)
    RenameFile(ctx context.Context, srcVolume, srcPath, dstVolume, dstPath string) error
    CheckParts(ctx context.Context, volume string, path string, fi FileInfo) error
    CheckFile(ctx context.Context, volume string, path string) (err error)
    Delete(ctx context.Context, volume string, path string, recursive bool) (err error)
    VerifyFile(ctx context.Context, volume, path string, fi FileInfo) error

    // Write all data, syncs the data to disk.
    // Should be used for smaller payloads.
    WriteAll(ctx context.Context, volume string, path string, b []byte) (err error)

    // Read all.
    ReadAll(ctx context.Context, 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 xlStorage 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 {
    Disks   []madmin.Disk
    Backend BackendInfo
}

StorageInfo - represents total capacity of underlying storage.

type StorageInfoRep Uses

type StorageInfoRep struct {
    Used      uint64 `json:"used"`
    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 associated 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) Release() 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 VersionNotFound Uses

type VersionNotFound GenericError

VersionNotFound version does not exist.

func (VersionNotFound) Error Uses

func (e VersionNotFound) Error() string

type VersionPurgeStatusType Uses

type VersionPurgeStatusType string

VersionPurgeStatusType represents status of a versioned delete or permanent delete w.r.t bucket replication

const (
    // Pending - versioned delete replication is pending.
    Pending VersionPurgeStatusType = "PENDING"

    // Complete - versioned delete replication is now complete, erase version on disk.
    Complete VersionPurgeStatusType = "COMPLETE"

    // Failed - versioned delete replication failed.
    Failed VersionPurgeStatusType = "FAILED"
)

func (*VersionPurgeStatusType) DecodeMsg Uses

func (z *VersionPurgeStatusType) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (VersionPurgeStatusType) Empty Uses

func (v VersionPurgeStatusType) Empty() bool

Empty returns true if purge status was not set.

func (VersionPurgeStatusType) EncodeMsg Uses

func (z VersionPurgeStatusType) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (VersionPurgeStatusType) MarshalMsg Uses

func (z VersionPurgeStatusType) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (VersionPurgeStatusType) Msgsize Uses

func (z VersionPurgeStatusType) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (VersionPurgeStatusType) Pending Uses

func (v VersionPurgeStatusType) Pending() bool

Pending returns true if the version is pending purge.

func (*VersionPurgeStatusType) UnmarshalMsg Uses

func (z *VersionPurgeStatusType) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type VersionType Uses

type VersionType uint8

VersionType defines the type of journal type of the current entry.

const (
    ObjectType VersionType = 1
    DeleteType VersionType = 2
    LegacyType VersionType = 3
)

List of different types of journal type

func (*VersionType) DecodeMsg Uses

func (z *VersionType) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (VersionType) EncodeMsg Uses

func (z VersionType) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (VersionType) MarshalMsg Uses

func (z VersionType) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (VersionType) Msgsize Uses

func (z VersionType) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*VersionType) UnmarshalMsg Uses

func (z *VersionType) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

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.

func (*VolInfo) DecodeMsg Uses

func (z *VolInfo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (VolInfo) EncodeMsg Uses

func (z VolInfo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (VolInfo) MarshalMsg Uses

func (z VolInfo) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (VolInfo) Msgsize Uses

func (z VolInfo) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*VolInfo) UnmarshalMsg Uses

func (z *VolInfo) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type VolsInfo Uses

type VolsInfo []VolInfo

VolsInfo is a collection of volume(bucket) information

func (*VolsInfo) DecodeMsg Uses

func (z *VolsInfo) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (VolsInfo) EncodeMsg Uses

func (z VolsInfo) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (VolsInfo) MarshalMsg Uses

func (z V