Documentation ¶
Overview ¶
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 ¶
- Constants
- Variables
- func AuthMiddleware(h http.Handler) http.Handler
- func BucketAccessPolicyToPolicy(policyInfo *miniogopolicy.BucketAccessPolicy) (*policy.Policy, error)
- func CheckLocalServerAddr(serverAddr string) error
- func CleanMinioInternalMetadataKeys(metadata map[string]string) map[string]string
- func ClusterCheckHandler(w http.ResponseWriter, r *http.Request)
- func ComputeCompleteMultipartMD5(parts []CompletePart) string
- func CreateEndpoints(serverAddr string, foundLocal bool, args ...[]string) (Endpoints, SetupType, error)
- func DecryptBlocksRequestR(inputReader io.Reader, h http.Header, seqNumber uint32, partStart int, ...) (io.Reader, error)
- func DecryptCopyRequestR(client io.Reader, h http.Header, bucket, object string, seqNumber uint32, ...) (io.Reader, error)
- func DecryptETag(key crypto.ObjectKey, object ObjectInfo) (string, error)
- func DecryptObjectInfo(info *ObjectInfo, r *http.Request) (encrypted bool, err error)
- func DecryptRequestWithSequenceNumberR(client io.Reader, h http.Header, bucket, object string, seqNumber uint32, ...) (io.Reader, error)
- func EncryptRequest(content io.Reader, r *http.Request, bucket, object string, ...) (io.Reader, crypto.ObjectKey, error)
- func ErrorRespToObjectError(err error, params ...string) error
- func Fallocate(fd int, offset int64, len int64) error
- func FromMinioClientMetadata(metadata map[string][]string) map[string]string
- func GenETag() string
- func GetAllSets(customSetDriveCount uint64, args ...string) ([][]string, error)
- func GetCurrentReleaseTime() (releaseTime time.Time, err error)
- func GetLocalPeer(endpointServerPools EndpointServerPools) (localPeer string)
- func GetProxyEndpointLocalIndex(proxyEps []ProxyEndpoint) int
- func GetVersion(configFile string) (string, error)
- func HasPrefix(s string, prefix string) bool
- func HasSuffix(s string, suffix string) bool
- func IsBOSH() bool
- func IsBackendOnline(ctx context.Context, host string) bool
- func IsDCOS() bool
- func IsDocker() bool
- func IsErr(err error, errs ...error) bool
- func IsErrIgnored(err error, ignoredErrs ...error) bool
- func IsKubernetes() bool
- func IsKubernetesReplicaSet() bool
- func IsSourceBuild() bool
- func IsValidBucketName(bucket string) bool
- func IsValidObjectName(object string) bool
- func IsValidObjectPrefix(object string) bool
- func LivenessCheckHandler(w http.ResponseWriter, r *http.Request)
- func Load(configFile string, data interface{}) (quick.Config, error)
- func Main(args []string)
- func NewGatewayHTTPTransport() *http.Transport
- func ObjectPathUpdated(s string)
- func ParseGatewayEndpoint(arg string) (endPoint string, secure bool, err error)
- func ParseSSECopyCustomerRequest(h http.Header, metadata map[string]string) (key []byte, err error)
- func ParseSSECustomerHeader(header http.Header) (key []byte, err error)
- func ParseSSECustomerRequest(r *http.Request) (key []byte, err error)
- func PolicyToBucketAccessPolicy(bucketPolicy *policy.Policy) (*miniogopolicy.BucketAccessPolicy, error)
- func ReadinessCheckHandler(w http.ResponseWriter, r *http.Request)
- func RegisterGatewayCommand(cmd cli.Command) error
- func Save(configFile string, data interface{}) error
- func StartGateway(ctx *cli.Context, gw Gateway)
- func StorageReader(storage StorageAPI, volume, path string, offset int64) io.Reader
- func StorageWriter(storage StorageAPI, volume, path string) io.Writer
- func ToMinioClientCompletePart(part CompletePart) minio.CompletePart
- func ToMinioClientCompleteParts(parts []CompletePart) []minio.CompletePart
- func ToMinioClientMetadata(metadata map[string]string) map[string]string
- func ToMinioClientObjectInfoMetadata(metadata map[string]string) map[string][]string
- func ToS3ETag(etag string) string
- func Trace(f http.HandlerFunc, logBody bool, w http.ResponseWriter, r *http.Request) trace.Info
- func UTCNow() time.Time
- func ValidateGatewayArguments(serverAddr, endpointAddr string) error
- func WebTrace(ri *jsonrpc.RequestInfo) trace.Info
- type APIError
- type APIErrorCode
- type APIErrorResponse
- type AdminError
- type AllAccessDisabled
- type AssumeRoleResponse
- type AssumeRoleResult
- type AssumeRoleWithClientGrantsResponse
- type AssumeRoleWithLDAPResponse
- type AssumeRoleWithWebIdentityResponse
- type AssumedRoleUser
- type BackendDown
- type BackendInfo
- type BackendType
- type BitrotAlgorithm
- func (a BitrotAlgorithm) Available() bool
- func (z *BitrotAlgorithm) DecodeMsg(dc *msgp.Reader) (err error)
- func (z BitrotAlgorithm) EncodeMsg(en *msgp.Writer) (err error)
- func (z BitrotAlgorithm) MarshalMsg(b []byte) (o []byte, err error)
- func (z BitrotAlgorithm) Msgsize() (s int)
- func (a BitrotAlgorithm) New() hash.Hash
- func (a BitrotAlgorithm) String() string
- func (z *BitrotAlgorithm) UnmarshalMsg(bts []byte) (o []byte, err error)
- type BitrotVerifier
- type Bucket
- type BucketAccessPolicy
- type BucketAlreadyExists
- type BucketAlreadyOwnedByYou
- type BucketExists
- type BucketInfo
- type BucketLifecycleNotFound
- type BucketMetadata
- func (z *BucketMetadata) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *BucketMetadata) EncodeMsg(en *msgp.Writer) (err error)
- func (b *BucketMetadata) Load(ctx context.Context, api ObjectLayer, name string) error
- func (z *BucketMetadata) MarshalMsg(b []byte) (o []byte, err error)
- func (z *BucketMetadata) Msgsize() (s int)
- func (b *BucketMetadata) Save(ctx context.Context, api ObjectLayer) error
- func (z *BucketMetadata) UnmarshalMsg(bts []byte) (o []byte, err error)
- type BucketMetadataSys
- func (sys *BucketMetadataSys) Get(bucket string) (BucketMetadata, error)
- func (sys *BucketMetadataSys) GetBucketTarget(bucket string, arn string) (madmin.BucketTarget, error)
- func (sys *BucketMetadataSys) GetBucketTargetsConfig(bucket string) (*madmin.BucketTargets, error)
- func (sys *BucketMetadataSys) GetConfig(bucket string) (BucketMetadata, error)
- func (sys *BucketMetadataSys) GetLifecycleConfig(bucket string) (*lifecycle.Lifecycle, error)
- func (sys *BucketMetadataSys) GetNotificationConfig(bucket string) (*event.Config, error)
- func (sys *BucketMetadataSys) GetObjectLockConfig(bucket string) (*objectlock.Config, error)
- func (sys *BucketMetadataSys) GetPolicyConfig(bucket string) (*policy.Policy, error)
- func (sys *BucketMetadataSys) GetQuotaConfig(bucket string) (*madmin.BucketQuota, error)
- func (sys *BucketMetadataSys) GetReplicationConfig(ctx context.Context, bucket string) (*replication.Config, error)
- func (sys *BucketMetadataSys) GetSSEConfig(bucket string) (*bucketsse.BucketSSEConfig, error)
- func (sys *BucketMetadataSys) GetTaggingConfig(bucket string) (*tags.Tags, error)
- func (sys *BucketMetadataSys) GetVersioningConfig(bucket string) (*versioning.Versioning, error)
- func (sys *BucketMetadataSys) Init(ctx context.Context, buckets []BucketInfo, objAPI ObjectLayer) error
- func (sys *BucketMetadataSys) Remove(bucket string)
- func (sys *BucketMetadataSys) Reset()
- func (sys *BucketMetadataSys) Set(bucket string, meta BucketMetadata)
- func (sys *BucketMetadataSys) Update(bucket string, configFile string, configData []byte) error
- type BucketNameInvalid
- type BucketNotEmpty
- type BucketNotFound
- type BucketObjectLockConfigNotFound
- type BucketObjectLockSys
- type BucketOptions
- type BucketPolicyNotFound
- type BucketQuotaConfigNotFound
- type BucketQuotaExceeded
- type BucketQuotaSys
- type BucketRemoteAlreadyExists
- type BucketRemoteArnInvalid
- type BucketRemoteArnTypeInvalid
- type BucketRemoteConnectionErr
- type BucketRemoteDestinationNotFound
- type BucketRemoteLabelInUse
- type BucketRemoteRemoveDisallowed
- type BucketRemoteTargetNotFound
- type BucketRemoteTargetNotVersioned
- type BucketReplicationConfigNotFound
- type BucketReplicationDestinationMissingLock
- type BucketReplicationSourceNotVersioned
- type BucketSSEConfigNotFound
- type BucketSSEConfigSys
- type BucketTaggingNotFound
- type BucketTargetSys
- func (sys *BucketTargetSys) GetRemoteArnWithLabel(ctx context.Context, bucket, tgtLabel string) *madmin.ARN
- func (sys *BucketTargetSys) GetRemoteLabelWithArn(ctx context.Context, bucket, arnStr string) string
- func (sys *BucketTargetSys) GetRemoteTargetClient(ctx context.Context, arn string) *TargetClient
- func (sys *BucketTargetSys) GetRemoteTargetWithLabel(ctx context.Context, bucket, targetLabel string) *madmin.BucketTarget
- func (sys *BucketTargetSys) Init(ctx context.Context, buckets []BucketInfo, objAPI ObjectLayer) error
- func (sys *BucketTargetSys) ListBucketTargets(ctx context.Context, bucket string) (*madmin.BucketTargets, error)
- func (sys *BucketTargetSys) ListTargets(ctx context.Context, bucket, arnType string) (targets []madmin.BucketTarget)
- func (sys *BucketTargetSys) RemoveTarget(ctx context.Context, bucket, arnStr string) error
- func (sys *BucketTargetSys) SetTarget(ctx context.Context, bucket string, tgt *madmin.BucketTarget, update bool) error
- func (sys *BucketTargetSys) UpdateAllTargets(bucket string, tgts *madmin.BucketTargets)
- type BucketUsageInfo
- type BucketVersioningSys
- type CacheChecksumInfoV1
- type CacheDiskStats
- type CacheObjectLayer
- type CacheStats
- type CacheStatusType
- type CacheStorageInfo
- type CheckPreconditionFn
- type ChecksumAlgo
- type ChecksumInfo
- func (z *ChecksumInfo) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *ChecksumInfo) EncodeMsg(en *msgp.Writer) (err error)
- func (c ChecksumInfo) MarshalJSON() ([]byte, error)
- func (z *ChecksumInfo) MarshalMsg(b []byte) (o []byte, err error)
- func (z *ChecksumInfo) Msgsize() (s int)
- func (c *ChecksumInfo) UnmarshalJSON(data []byte) error
- func (z *ChecksumInfo) UnmarshalMsg(bts []byte) (o []byte, err error)
- type ClientGrantsResult
- type CommonPrefix
- type CompleteMultipartUpload
- type CompleteMultipartUploadResponse
- type CompletePart
- type CompletedParts
- type ConfigDir
- type ConfigSys
- type ConnStats
- type ConsoleLogger
- type CopyObjectPartResponse
- type CopyObjectResponse
- type DataUsageInfo
- type DecryptBlocksReader
- type DeleteError
- type DeleteMarkerMTime
- type DeleteObjectsRequest
- type DeleteObjectsResponse
- type DeleteVersionsErrsResp
- type DeletedObject
- type DeletedObjectInfo
- type DeletedObjectVersionInfo
- type DiscoveryDocResp
- type DiskInfo
- type DownloadZipArgs
- type Encryption
- type Endpoint
- type EndpointServerPools
- func (l *EndpointServerPools) Add(zeps ZoneEndpoints) error
- func (l EndpointServerPools) FirstLocal() bool
- func (l EndpointServerPools) GetLocalZoneIdx(ep Endpoint) int
- func (l EndpointServerPools) HTTPS() bool
- func (l EndpointServerPools) Hostnames() []string
- func (l EndpointServerPools) Localhost() string
- func (l EndpointServerPools) NEndpoints() (count int)
- type EndpointType
- type Endpoints
- type Erasure
- func (e Erasure) Decode(ctx context.Context, writer io.Writer, readers []io.ReaderAt, ...) error
- func (e *Erasure) DecodeDataAndParityBlocks(ctx context.Context, data [][]byte) error
- func (e *Erasure) DecodeDataBlocks(data [][]byte) error
- func (e *Erasure) Encode(ctx context.Context, src io.Reader, writers []io.Writer, buf []byte, ...) (total int64, err error)
- func (e *Erasure) EncodeData(ctx context.Context, data []byte) ([][]byte, error)
- func (e Erasure) Heal(ctx context.Context, readers []io.ReaderAt, writers []io.Writer, size int64) error
- func (e *Erasure) ShardFileOffset(startOffset, length, totalLength int64) int64
- func (e *Erasure) ShardFileSize(totalLength int64) int64
- func (e *Erasure) ShardSize() int64
- type ErasureAlgo
- func (z *ErasureAlgo) DecodeMsg(dc *msgp.Reader) (err error)
- func (z ErasureAlgo) EncodeMsg(en *msgp.Writer) (err error)
- func (z ErasureAlgo) MarshalMsg(b []byte) (o []byte, err error)
- func (z ErasureAlgo) Msgsize() (s int)
- func (e ErasureAlgo) String() string
- func (z *ErasureAlgo) UnmarshalMsg(bts []byte) (o []byte, err error)
- type ErasureInfo
- func (e *ErasureInfo) AddChecksumInfo(ckSumInfo ChecksumInfo)
- func (z *ErasureInfo) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *ErasureInfo) EncodeMsg(en *msgp.Writer) (err error)
- func (e ErasureInfo) GetChecksumInfo(partNumber int) (ckSum ChecksumInfo)
- func (z *ErasureInfo) MarshalMsg(b []byte) (o []byte, err error)
- func (z *ErasureInfo) Msgsize() (s int)
- func (e ErasureInfo) ShardFileSize(totalLength int64) int64
- func (e ErasureInfo) ShardSize() int64
- func (z *ErasureInfo) UnmarshalMsg(bts []byte) (o []byte, err error)
- type FSChecksumInfoV1
- type FSObjects
- func (fs *FSObjects) AbortMultipartUpload(ctx context.Context, bucket, object, uploadID string, opts ObjectOptions) error
- func (fs *FSObjects) BackendInfo() BackendInfo
- func (fs *FSObjects) CompleteMultipartUpload(ctx context.Context, bucket string, object string, uploadID string, ...) (oi ObjectInfo, e error)
- func (fs *FSObjects) CopyObject(ctx context.Context, srcBucket, srcObject, dstBucket, dstObject string, ...) (oi ObjectInfo, e error)
- func (fs *FSObjects) CopyObjectPart(ctx context.Context, ...) (pi PartInfo, e error)
- func (fs *FSObjects) CrawlAndGetDataUsage(ctx context.Context, bf *bloomFilter, updates chan<- DataUsageInfo) error
- func (fs *FSObjects) DeleteBucket(ctx context.Context, bucket string, forceDelete bool) error
- func (fs *FSObjects) DeleteBucketPolicy(ctx context.Context, bucket string) error
- func (fs *FSObjects) DeleteObject(ctx context.Context, bucket, object string, opts ObjectOptions) (objInfo ObjectInfo, err error)
- func (fs *FSObjects) DeleteObjectTags(ctx context.Context, bucket, object string, opts ObjectOptions) error
- func (fs *FSObjects) DeleteObjects(ctx context.Context, bucket string, objects []ObjectToDelete, ...) ([]DeletedObject, []error)
- func (fs *FSObjects) GetBucketInfo(ctx context.Context, bucket string) (bi BucketInfo, e error)
- func (fs *FSObjects) GetBucketPolicy(ctx context.Context, bucket string) (*policy.Policy, error)
- func (fs *FSObjects) GetMetrics(ctx context.Context) (*Metrics, error)
- func (fs *FSObjects) GetMultipartInfo(ctx context.Context, bucket, object, uploadID string, opts ObjectOptions) (MultipartInfo, error)
- func (fs *FSObjects) GetObject(ctx context.Context, bucket, object string, offset int64, length int64, ...) (err error)
- func (fs *FSObjects) GetObjectInfo(ctx context.Context, bucket, object string, opts ObjectOptions) (oi ObjectInfo, e error)
- func (fs *FSObjects) GetObjectNInfo(ctx context.Context, bucket, object string, rs *HTTPRangeSpec, h http.Header, ...) (gr *GetObjectReader, err error)
- func (fs *FSObjects) GetObjectTags(ctx context.Context, bucket, object string, opts ObjectOptions) (*tags.Tags, error)
- func (fs *FSObjects) HealBucket(ctx context.Context, bucket string, opts madmin.HealOpts) (madmin.HealResultItem, error)
- func (fs *FSObjects) HealFormat(ctx context.Context, dryRun bool) (madmin.HealResultItem, error)
- func (fs *FSObjects) HealObject(ctx context.Context, bucket, object, versionID string, opts madmin.HealOpts) (res madmin.HealResultItem, err error)
- func (fs *FSObjects) HealObjects(ctx context.Context, bucket, prefix string, opts madmin.HealOpts, ...) (e error)
- func (fs *FSObjects) Health(ctx context.Context, opts HealthOptions) HealthResult
- func (fs *FSObjects) IsCompressionSupported() bool
- func (fs *FSObjects) IsEncryptionSupported() bool
- func (fs *FSObjects) IsListenSupported() bool
- func (fs *FSObjects) IsNotificationSupported() bool
- func (fs *FSObjects) IsTaggingSupported() bool
- func (fs *FSObjects) ListBuckets(ctx context.Context) ([]BucketInfo, error)
- func (fs *FSObjects) ListMultipartUploads(ctx context.Context, ...) (result ListMultipartsInfo, e error)
- func (fs *FSObjects) ListObjectParts(ctx context.Context, bucket, object, uploadID string, ...) (result ListPartsInfo, e error)
- func (fs *FSObjects) ListObjectVersions(ctx context.Context, bucket, prefix, marker, versionMarker, delimiter string, ...) (loi ListObjectVersionsInfo, e error)
- func (fs *FSObjects) ListObjects(ctx context.Context, bucket, prefix, marker, delimiter string, maxKeys int) (loi ListObjectsInfo, e error)
- func (fs *FSObjects) ListObjectsV2(ctx context.Context, bucket, prefix, continuationToken, delimiter string, ...) (result ListObjectsV2Info, err error)
- func (fs *FSObjects) MakeBucketWithLocation(ctx context.Context, bucket string, opts BucketOptions) error
- func (fs *FSObjects) NewMultipartUpload(ctx context.Context, bucket, object string, opts ObjectOptions) (string, error)
- func (fs *FSObjects) NewNSLock(bucket string, objects ...string) RWLocker
- func (fs *FSObjects) PutObject(ctx context.Context, bucket string, object string, r *PutObjReader, ...) (objInfo ObjectInfo, retErr error)
- func (fs *FSObjects) PutObjectPart(ctx context.Context, bucket, object, uploadID string, partID int, ...) (pi PartInfo, e error)
- func (fs *FSObjects) PutObjectTags(ctx context.Context, bucket, object string, tags string, opts ObjectOptions) error
- func (fs *FSObjects) SetBucketPolicy(ctx context.Context, bucket string, p *policy.Policy) error
- func (fs *FSObjects) SetDriveCount() int
- func (fs *FSObjects) Shutdown(ctx context.Context) error
- func (fs *FSObjects) StorageInfo(ctx context.Context) (StorageInfo, []error)
- func (fs *FSObjects) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo, ...) error
- type FileInfo
- func (fi *FileInfo) AddObjectPart(partNumber int, partETag string, partSize int64, actualSize int64)
- func (z *FileInfo) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *FileInfo) EncodeMsg(en *msgp.Writer) (err error)
- func (fi FileInfo) IsValid() bool
- func (z *FileInfo) MarshalMsg(b []byte) (o []byte, err error)
- func (z *FileInfo) Msgsize() (s int)
- func (fi FileInfo) ObjectToPartOffset(ctx context.Context, offset int64) (partIndex int, partOffset int64, err error)
- func (fi FileInfo) ToObjectInfo(bucket, object string) ObjectInfo
- func (z *FileInfo) UnmarshalMsg(bts []byte) (o []byte, err error)
- type FileInfoCh
- type FileInfoVersions
- func (z *FileInfoVersions) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *FileInfoVersions) EncodeMsg(en *msgp.Writer) (err error)
- func (z *FileInfoVersions) MarshalMsg(b []byte) (o []byte, err error)
- func (z *FileInfoVersions) Msgsize() (s int)
- func (z *FileInfoVersions) UnmarshalMsg(bts []byte) (o []byte, err error)
- type FileInfoVersionsCh
- type FileLogger
- type FilesInfo
- type FilesInfoVersions
- func (z *FilesInfoVersions) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *FilesInfoVersions) EncodeMsg(en *msgp.Writer) (err error)
- func (z *FilesInfoVersions) MarshalMsg(b []byte) (o []byte, err error)
- func (z *FilesInfoVersions) Msgsize() (s int)
- func (z *FilesInfoVersions) UnmarshalMsg(bts []byte) (o []byte, err error)
- type Gateway
- type GatewayLocker
- type GatewayUnsupported
- func (a GatewayUnsupported) AbortMultipartUpload(ctx context.Context, bucket string, object string, uploadID string, ...) error
- func (a GatewayUnsupported) BackendInfo() BackendInfo
- func (a GatewayUnsupported) CompleteMultipartUpload(ctx context.Context, bucket string, object string, uploadID string, ...) (oi ObjectInfo, err error)
- func (a GatewayUnsupported) CopyObject(ctx context.Context, srcBucket string, srcObject string, destBucket string, ...) (objInfo ObjectInfo, err error)
- func (a GatewayUnsupported) CopyObjectPart(ctx context.Context, ...) (pi PartInfo, err error)
- func (a GatewayUnsupported) CrawlAndGetDataUsage(ctx context.Context, bf *bloomFilter, updates chan<- DataUsageInfo) error
- func (a GatewayUnsupported) DeleteBucketLifecycle(ctx context.Context, bucket string) error
- func (a GatewayUnsupported) DeleteBucketPolicy(ctx context.Context, bucket string) error
- func (a GatewayUnsupported) DeleteBucketSSEConfig(ctx context.Context, bucket string) error
- func (a GatewayUnsupported) DeleteObjectTags(ctx context.Context, bucket, object string, opts ObjectOptions) error
- func (a GatewayUnsupported) GetBucketLifecycle(ctx context.Context, bucket string) (*lifecycle.Lifecycle, error)
- func (a GatewayUnsupported) GetBucketPolicy(ctx context.Context, bucket string) (bucketPolicy *policy.Policy, err error)
- func (a GatewayUnsupported) GetBucketSSEConfig(ctx context.Context, bucket string) (*bucketsse.BucketSSEConfig, error)
- func (a GatewayUnsupported) GetBucketVersioning(ctx context.Context, bucket string) (*versioning.Versioning, error)
- func (a GatewayUnsupported) GetMetrics(ctx context.Context) (*Metrics, error)
- func (a GatewayUnsupported) GetMultipartInfo(ctx context.Context, bucket string, object string, uploadID string, ...) (MultipartInfo, error)
- func (a GatewayUnsupported) GetObjectTags(ctx context.Context, bucket, object string, opts ObjectOptions) (*tags.Tags, error)
- func (a GatewayUnsupported) HealBucket(ctx context.Context, bucket string, opts madmin.HealOpts) (madmin.HealResultItem, error)
- func (a GatewayUnsupported) HealFormat(ctx context.Context, dryRun bool) (madmin.HealResultItem, error)
- func (a GatewayUnsupported) HealObject(ctx context.Context, bucket, object, versionID string, opts madmin.HealOpts) (h madmin.HealResultItem, e error)
- func (a GatewayUnsupported) HealObjects(ctx context.Context, bucket, prefix string, opts madmin.HealOpts, ...) (e error)
- func (a GatewayUnsupported) Health(_ context.Context, _ HealthOptions) HealthResult
- func (a GatewayUnsupported) IsCompressionSupported() bool
- func (a GatewayUnsupported) IsEncryptionSupported() bool
- func (a GatewayUnsupported) IsListenSupported() bool
- func (a GatewayUnsupported) IsNotificationSupported() bool
- func (a GatewayUnsupported) IsTaggingSupported() bool
- func (a GatewayUnsupported) ListMultipartUploads(ctx context.Context, bucket string, prefix string, keyMarker string, ...) (lmi ListMultipartsInfo, err error)
- func (a GatewayUnsupported) ListObjectParts(ctx context.Context, bucket string, object string, uploadID string, ...) (lpi ListPartsInfo, err error)
- func (a GatewayUnsupported) ListObjectVersions(ctx context.Context, bucket, prefix, marker, versionMarker, delimiter string, ...) (ListObjectVersionsInfo, error)
- func (a GatewayUnsupported) ListObjectsV2(ctx context.Context, bucket, prefix, continuationToken, delimiter string, ...) (result ListObjectsV2Info, err error)
- func (a GatewayUnsupported) NewMultipartUpload(ctx context.Context, bucket string, object string, opts ObjectOptions) (uploadID string, err error)
- func (a GatewayUnsupported) NewNSLock(bucket string, objects ...string) RWLocker
- func (a GatewayUnsupported) PutObjectPart(ctx context.Context, bucket string, object string, uploadID string, partID int, ...) (pi PartInfo, err error)
- func (a GatewayUnsupported) PutObjectTags(ctx context.Context, bucket, object string, tags string, opts ObjectOptions) error
- func (a GatewayUnsupported) SetBucketLifecycle(ctx context.Context, bucket string, lifecycle *lifecycle.Lifecycle) error
- func (a GatewayUnsupported) SetBucketPolicy(ctx context.Context, bucket string, bucketPolicy *policy.Policy) error
- func (a GatewayUnsupported) SetBucketSSEConfig(ctx context.Context, bucket string, config *bucketsse.BucketSSEConfig) error
- func (a GatewayUnsupported) SetBucketVersioning(ctx context.Context, bucket string, v *versioning.Versioning) error
- func (a GatewayUnsupported) SetDriveCount() int
- func (a GatewayUnsupported) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo, ...) error
- type GenerateAuthReply
- type GenericError
- type GetBucketPolicyArgs
- type GetBucketPolicyRep
- type GetObjectInfoFn
- type GetObjectReader
- type GroupInfo
- type HTTPAPIStats
- type HTTPConsoleLoggerSys
- func (sys *HTTPConsoleLoggerSys) Content() (logs []log.Entry)
- func (sys *HTTPConsoleLoggerSys) Endpoint() string
- func (sys *HTTPConsoleLoggerSys) HasLogListeners() bool
- func (sys *HTTPConsoleLoggerSys) Send(e interface{}, logKind string) error
- func (sys *HTTPConsoleLoggerSys) SetNodeName(endpointServerPools EndpointServerPools)
- func (sys *HTTPConsoleLoggerSys) String() string
- func (sys *HTTPConsoleLoggerSys) Subscribe(subCh chan interface{}, doneCh <-chan struct{}, node string, last int, ...)
- func (sys *HTTPConsoleLoggerSys) Validate() error
- type HTTPRangeSpec
- type HTTPStats
- type HealObjectFn
- type HealthOptions
- type HealthResult
- type Help
- type IAMEtcdStore
- type IAMObjectStore
- type IAMStorageAPI
- type IAMSys
- func (sys *IAMSys) AddUsersToGroup(group string, members []string) error
- func (sys *IAMSys) CurrentPolicies(policyName string) string
- func (sys *IAMSys) DeletePolicy(policyName string) error
- func (sys *IAMSys) DeleteServiceAccount(ctx context.Context, accessKey string) error
- func (sys *IAMSys) DeleteUser(accessKey string) error
- func (sys *IAMSys) EnableLDAPSys()
- func (sys *IAMSys) GetCombinedPolicy(policies ...string) iampolicy.Policy
- func (sys *IAMSys) GetGroupDescription(group string) (gd madmin.GroupDesc, err error)
- func (sys *IAMSys) GetServiceAccountParent(ctx context.Context, accessKey string) (string, error)
- func (sys *IAMSys) GetUser(accessKey string) (cred auth.Credentials, ok bool)
- func (sys *IAMSys) GetUserInfo(name string) (u madmin.UserInfo, err error)
- func (sys *IAMSys) InfoPolicy(policyName string) (iampolicy.Policy, error)
- func (sys *IAMSys) Init(ctx context.Context, objAPI ObjectLayer)
- func (sys *IAMSys) InitStore(objAPI ObjectLayer)
- func (sys *IAMSys) Initialized() bool
- func (sys *IAMSys) IsAllowed(args iampolicy.Args) bool
- func (sys *IAMSys) IsAllowedLDAPSTS(args iampolicy.Args) bool
- func (sys *IAMSys) IsAllowedSTS(args iampolicy.Args) bool
- func (sys *IAMSys) IsAllowedServiceAccount(args iampolicy.Args, parent string) bool
- func (sys *IAMSys) IsServiceAccount(name string) (bool, string, error)
- func (sys *IAMSys) IsTempUser(name string) (bool, error)
- func (sys *IAMSys) ListGroups() (r []string, err error)
- func (sys *IAMSys) ListPolicies() (map[string]iampolicy.Policy, error)
- func (sys *IAMSys) ListServiceAccounts(ctx context.Context, accessKey string) ([]string, error)
- func (sys *IAMSys) ListUsers() (map[string]madmin.UserInfo, error)
- func (sys *IAMSys) LoadGroup(objAPI ObjectLayer, group string) error
- func (sys *IAMSys) LoadPolicy(objAPI ObjectLayer, policyName string) error
- func (sys *IAMSys) LoadPolicyMapping(objAPI ObjectLayer, userOrGroup string, isGroup bool) error
- func (sys *IAMSys) LoadServiceAccount(accessKey string) error
- func (sys *IAMSys) LoadUser(objAPI ObjectLayer, accessKey string, userType IAMUserType) error
- func (sys *IAMSys) NewServiceAccount(ctx context.Context, parentUser string, sessionPolicy *iampolicy.Policy) (auth.Credentials, error)
- func (sys *IAMSys) PolicyDBGet(name string, isGroup bool) ([]string, error)
- func (sys *IAMSys) PolicyDBSet(name, policy string, isGroup bool) error
- func (sys *IAMSys) RemoveUsersFromGroup(group string, members []string) error
- func (sys *IAMSys) SetGroupStatus(group string, enabled bool) error
- func (sys *IAMSys) SetPolicy(policyName string, p iampolicy.Policy) error
- func (sys *IAMSys) SetTempUser(accessKey string, cred auth.Credentials, policyName string) error
- func (sys *IAMSys) SetUser(accessKey string, uinfo madmin.UserInfo) error
- func (sys *IAMSys) SetUserSecretKey(accessKey string, secretKey string) error
- func (sys *IAMSys) SetUserStatus(accessKey string, status madmin.AccountStatus) error
- type IAMUserType
- type IncompleteBody
- type InitiateMultipartUploadResponse
- type Initiator
- type InsufficientReadQuorum
- type InsufficientWriteQuorum
- type InvalidArgument
- type InvalidETag
- type InvalidMarkerPrefixCombination
- type InvalidPart
- type InvalidRange
- type InvalidUploadID
- type InvalidUploadIDKeyCombination
- type InvalidVersionID
- type IsLeafDirFunc
- type IsLeafFunc
- type KeyValueMap
- func (km KeyValueMap) Bucket() string
- func (km KeyValueMap) Hostname() string
- func (km KeyValueMap) Object() string
- func (km KeyValueMap) Objects() []string
- func (km KeyValueMap) Policy() string
- func (km KeyValueMap) Prefix() string
- func (km *KeyValueMap) SetBucket(bucket string)
- func (km *KeyValueMap) SetExpiry(expiry int64)
- func (km *KeyValueMap) SetHostname(hostname string)
- func (km *KeyValueMap) SetMarker(marker string)
- func (km *KeyValueMap) SetObject(object string)
- func (km *KeyValueMap) SetObjects(objects []string)
- func (km *KeyValueMap) SetPolicy(policy string)
- func (km *KeyValueMap) SetPrefix(prefix string)
- func (km *KeyValueMap) SetUsername(username string)
- func (km KeyValueMap) Username() string
- type LDAPIdentityResult
- type LifecycleSys
- type ListAllBucketPoliciesArgs
- type ListAllBucketPoliciesRep
- type ListBucketsRep
- type ListBucketsResponse
- type ListDirFunc
- type ListMultipartUploadsResponse
- type ListMultipartsInfo
- type ListObjectVersionsInfo
- type ListObjectsArgs
- type ListObjectsInfo
- type ListObjectsRep
- type ListObjectsResponse
- type ListObjectsV2Info
- type ListObjectsV2Response
- type ListPartsInfo
- type ListPartsResponse
- type ListVersionsResponse
- type LocationResponse
- type LockType
- type LoginArgs
- type LoginRep
- type LoginSTSArgs
- type MakeBucketArgs
- type MalformedUploadID
- type MappedPolicy
- type MetadataEntry
- type MethodNotAllowed
- type Metrics
- type MetricsTransport
- type MultipartInfo
- type NotImplemented
- type NotificationGroup
- type NotificationPeerErr
- type NotificationSys
- func (sys *NotificationSys) AddRulesMap(bucketName string, rulesMap event.RulesMap)
- func (sys *NotificationSys) BackgroundHealStatus() ([]madmin.BgHealState, []NotificationPeerErr)
- func (sys *NotificationSys) CPUInfo(ctx context.Context) []madmin.ServerCPUInfo
- func (sys *NotificationSys) ConfiguredTargetIDs() []event.TargetID
- func (sys *NotificationSys) DeleteBucketMetadata(ctx context.Context, bucketName string)
- func (sys *NotificationSys) DeletePolicy(policyName string) []NotificationPeerErr
- func (sys *NotificationSys) DeleteServiceAccount(accessKey string) []NotificationPeerErr
- func (sys *NotificationSys) DeleteUser(accessKey string) []NotificationPeerErr
- func (sys *NotificationSys) DiskHwInfo(ctx context.Context) []madmin.ServerDiskHwInfo
- func (sys *NotificationSys) DispatchNetPerfChan(ctx context.Context) chan madmin.ServerNetHealthInfo
- func (sys *NotificationSys) DispatchNetPerfInfo(ctx context.Context) []madmin.ServerNetHealthInfo
- func (sys *NotificationSys) DownloadProfilingData(ctx context.Context, writer io.Writer) bool
- func (sys *NotificationSys) DrivePerfInfo(ctx context.Context) []madmin.ServerDrivesInfo
- func (sys *NotificationSys) DrivePerfInfoChan(ctx context.Context) chan madmin.ServerDrivesInfo
- func (sys *NotificationSys) GetARNList(onlyActive bool) []string
- func (sys *NotificationSys) GetBandwidthReports(ctx context.Context, buckets ...string) bandwidth.Report
- func (sys *NotificationSys) GetLocalDiskIDs(ctx context.Context) (localDiskIDs [][]string)
- func (sys *NotificationSys) GetLocks(ctx context.Context, r *http.Request) []*PeerLocks
- func (sys *NotificationSys) Init(ctx context.Context, buckets []BucketInfo, objAPI ObjectLayer) error
- func (sys *NotificationSys) LoadBucketMetadata(ctx context.Context, bucketName string)
- func (sys *NotificationSys) LoadGroup(group string) []NotificationPeerErr
- func (sys *NotificationSys) LoadPolicy(policyName string) []NotificationPeerErr
- func (sys *NotificationSys) LoadPolicyMapping(userOrGroup string, isGroup bool) []NotificationPeerErr
- func (sys *NotificationSys) LoadServiceAccount(accessKey string) []NotificationPeerErr
- func (sys *NotificationSys) LoadUser(accessKey string, temp bool) []NotificationPeerErr
- func (sys *NotificationSys) MemInfo(ctx context.Context) []madmin.ServerMemInfo
- func (sys *NotificationSys) NetInfo(ctx context.Context) madmin.ServerNetHealthInfo
- func (sys *NotificationSys) NetPerfParallelInfo(ctx context.Context) madmin.ServerNetHealthInfo
- func (sys *NotificationSys) OsInfo(ctx context.Context) []madmin.ServerOsInfo
- func (sys *NotificationSys) ProcInfo(ctx context.Context) []madmin.ServerProcInfo
- func (sys *NotificationSys) RemoveAllRemoteTargets()
- func (sys *NotificationSys) RemoveNotification(bucketName string)
- func (sys *NotificationSys) RemoveRulesMap(bucketName string, rulesMap event.RulesMap)
- func (sys *NotificationSys) Send(args eventArgs)
- func (sys *NotificationSys) ServerInfo() []madmin.ServerProperties
- func (sys *NotificationSys) ServerUpdate(ctx context.Context, u *url.URL, sha256Sum []byte, lrTime time.Time) []NotificationPeerErr
- func (sys *NotificationSys) SignalService(sig serviceSignal) []NotificationPeerErr
- func (sys *NotificationSys) StartProfiling(profiler string) []NotificationPeerErr
- type ObjReaderFn
- type Object
- type ObjectAlreadyExists
- type ObjectExistsAsDirectory
- type ObjectInfo
- func (o *ObjectInfo) DecryptedSize() (int64, error)
- func (o *ObjectInfo) EncryptedSize() int64
- func (o ObjectInfo) GetActualETag(h http.Header) string
- func (o ObjectInfo) GetActualSize() (int64, error)
- func (o *ObjectInfo) GetDecryptedRange(rs *HTTPRangeSpec) (encOff, encLength, skipLen int64, seqNumber uint32, partStart int, err error)
- func (o ObjectInfo) IsCacheable() bool
- func (o ObjectInfo) IsCompressed() bool
- func (o ObjectInfo) IsCompressedOK() (bool, error)
- type ObjectLayer
- type ObjectNameInvalid
- type ObjectNamePrefixAsSlash
- type ObjectNameTooLong
- type ObjectNotFound
- type ObjectOptions
- type ObjectPartInfo
- func (z *ObjectPartInfo) DecodeMsg(dc *msgp.Reader) (err error)
- func (z *ObjectPartInfo) EncodeMsg(en *msgp.Writer) (err error)
- func (z *ObjectPartInfo) MarshalMsg(b []byte) (o []byte, err error)
- func (z *ObjectPartInfo) Msgsize() (s int)
- func (z *ObjectPartInfo) UnmarshalMsg(bts []byte) (o []byte, err error)
- type ObjectToDelete
- type ObjectTooLarge
- type ObjectTooSmall
- type ObjectVersion
- type OperationTimedOut
- type OutputLocation
- type Owner
- type ParentIsObject
- type Part
- type PartInfo
- type PartTooBig
- type PartTooSmall
- type PeerLocks
- type PolicySys
- type PostPolicyForm
- type PostResponse
- type PreConditionFailed
- type PrefixAccessDenied
- type PresignedGetArgs
- type PresignedGetRep
- type ProxyEndpoint
- type PutObjReader
- type RWLocker
- type RangeInfo
- type RemoveBucketArgs
- type RemoveObjectArgs
- type RequestStats
- type RestoreObjectRequest
- type RestoreRequestType
- type S3Location
- type STSError
- type STSErrorCode
- type STSErrorResponse
- type SealMD5CurrFn
- type SelectParameters
- type ServerConnStats
- type ServerHTTPAPIStats
- type ServerHTTPStats
- type ServerInfo
- type ServerInfoData
- type ServerInfoRep
- type ServerProperties
- type ServerSystemConfig
- type SetAuthArgs
- type SetAuthReply
- type SetBucketPolicyWebArgs
- type SetupType
- type SignatureDoesNotMatch
- type SlowDown
- type StartProfilingResult
- type StatInfo
- type StorageAPI
- type StorageErr
- type StorageFull
- type StorageInfo
- type StorageInfoRep
- type StringMap
- type TargetClient
- type ToKeyValuer
- type TreeWalkPool
- type TreeWalkResult
- type URLTokenReply
- type UnsupportedDelimiter
- type UnsupportedMetadata
- type Upload
- type UserIdentity
- type UsersSysType
- type VerifyFileResp
- type VersionNotFound
- type VersionPurgeStatusType
- func (z *VersionPurgeStatusType) DecodeMsg(dc *msgp.Reader) (err error)
- func (v VersionPurgeStatusType) Empty() bool
- func (z VersionPurgeStatusType) EncodeMsg(en *msgp.Writer) (err error)
- func (z VersionPurgeStatusType) MarshalMsg(b []byte) (o []byte, err error)
- func (z VersionPurgeStatusType) Msgsize() (s int)
- func (v VersionPurgeStatusType) Pending() bool
- func (z *VersionPurgeStatusType) UnmarshalMsg(bts []byte) (o []byte, err error)
- type VersionType
- type VolInfo
- type VolsInfo
- type WalkDirOptions
- type WebBucketInfo
- type WebGenericArgs
- type WebGenericRep
- type WebIdentityResult
- type WebObjectInfo
- type ZoneEndpoints
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
Functions ¶
func AuthMiddleware ¶
AuthMiddleware checks if the bearer token is valid and authorized.
func BucketAccessPolicyToPolicy ¶
func BucketAccessPolicyToPolicy(policyInfo *miniogopolicy.BucketAccessPolicy) (*policy.Policy, error)
BucketAccessPolicyToPolicy - converts minio-go/policy.BucketAccessPolicy to policy.Policy.
func CheckLocalServerAddr ¶
CheckLocalServerAddr - checks if serverAddr is valid and local host.
func CleanMinioInternalMetadataKeys ¶
CleanMinioInternalMetadataKeys removes X-Amz-Meta- prefix from minio internal encryption metadata that was sent by minio gateway
func ClusterCheckHandler ¶
func ClusterCheckHandler(w http.ResponseWriter, r *http.Request)
ClusterCheckHandler returns if the server is ready for requests.
func ComputeCompleteMultipartMD5 ¶
func ComputeCompleteMultipartMD5(parts []CompletePart) string
ComputeCompleteMultipartMD5 calculates MD5 ETag for complete multipart responses
func CreateEndpoints ¶
func CreateEndpoints(serverAddr string, foundLocal bool, args ...[]string) (Endpoints, SetupType, error)
CreateEndpoints - validates and creates new endpoints for given args.
func DecryptBlocksRequestR ¶
func DecryptBlocksRequestR(inputReader io.Reader, h http.Header, seqNumber uint32, partStart int, oi ObjectInfo, copySource bool) (io.Reader, error)
DecryptBlocksRequestR - same as DecryptBlocksRequest but with a reader
func DecryptCopyRequestR ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
ErrorRespToObjectError converts MinIO errors to minio object layer errors.
func Fallocate ¶
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 ¶
FromMinioClientMetadata converts minio metadata to map[string]string
func GetAllSets ¶
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 ¶
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 ¶
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 ¶
func GetProxyEndpointLocalIndex(proxyEps []ProxyEndpoint) int
GetProxyEndpointLocalIndex returns index of the local proxy endpoint
func GetVersion ¶
GetVersion gets config version from backend
func HasPrefix ¶
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 ¶
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 IsBackendOnline ¶
IsBackendOnline - verifies if the backend is reachable by performing a GET request on the URL. returns 'true' if backend is reachable.
func IsDocker ¶
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 IsErrIgnored ¶
IsErrIgnored returns whether given error is ignored or not.
func IsKubernetes ¶
func IsKubernetes() bool
IsKubernetes returns true if minio is running in kubernetes.
func IsKubernetesReplicaSet ¶
func IsKubernetesReplicaSet() bool
IsKubernetesReplicaSet returns true if minio is running in kubernetes replica set.
func IsSourceBuild ¶
func IsSourceBuild() bool
IsSourceBuild - returns if this binary is a non-official build from source code.
func IsValidBucketName ¶
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 ¶
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 ¶
IsValidObjectPrefix verifies whether the prefix is a valid object name. Its valid to have a empty prefix.
func LivenessCheckHandler ¶
func LivenessCheckHandler(w http.ResponseWriter, r *http.Request)
LivenessCheckHandler - Checks if the process is up. Always returns success.
func NewGatewayHTTPTransport ¶
NewGatewayHTTPTransport returns a new http configuration used while communicating with the cloud backends.
func ObjectPathUpdated ¶
func ObjectPathUpdated(s string)
ObjectPathUpdated indicates a path has been updated. The function will block until the entry has been picked up.
func ParseGatewayEndpoint ¶
ParseGatewayEndpoint - Return endpoint.
func ParseSSECopyCustomerRequest ¶
ParseSSECopyCustomerRequest parses the SSE-C header fields of the provided request. It returns the client provided key on success.
func ParseSSECustomerHeader ¶
ParseSSECustomerHeader parses the SSE-C header fields and returns the client provided key on success.
func ParseSSECustomerRequest ¶
ParseSSECustomerRequest parses the SSE-C header fields of the provided request. It returns the client provided key on success.
func PolicyToBucketAccessPolicy ¶
func PolicyToBucketAccessPolicy(bucketPolicy *policy.Policy) (*miniogopolicy.BucketAccessPolicy, error)
PolicyToBucketAccessPolicy converts a MinIO policy into a minio-go policy data structure.
func ReadinessCheckHandler ¶
func ReadinessCheckHandler(w http.ResponseWriter, r *http.Request)
ReadinessCheckHandler Checks if the process is up. Always returns success.
func RegisterGatewayCommand ¶
RegisterGatewayCommand registers a new command for gateway.
func StartGateway ¶
StartGateway - handler for 'minio gateway <name>'.
func StorageReader ¶
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 ¶
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 ¶
func ToMinioClientCompletePart(part CompletePart) minio.CompletePart
ToMinioClientCompletePart converts CompletePart to minio CompletePart
func ToMinioClientCompleteParts ¶
func ToMinioClientCompleteParts(parts []CompletePart) []minio.CompletePart
ToMinioClientCompleteParts converts []CompletePart to minio []CompletePart
func ToMinioClientMetadata ¶
ToMinioClientMetadata converts metadata to map[string]string
func ToMinioClientObjectInfoMetadata ¶
ToMinioClientObjectInfoMetadata convertes metadata to map[string][]string
func Trace ¶
func Trace(f http.HandlerFunc, logBody bool, w http.ResponseWriter, r *http.Request) trace.Info
Trace gets trace of http request
func ValidateGatewayArguments ¶
ValidateGatewayArguments - Validate gateway arguments.
Types ¶
type APIErrorCode ¶
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 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 ErrHealNotImplemented ErrHealNoSuchProcess ErrHealInvalidClientToken ErrHealMissingBucket ErrHealAlreadyRunning ErrHealOverlappingPaths ErrIncorrectContinuationToken // S3 Select Errors ErrEmptyRequestBody ErrUnsupportedFunction ErrInvalidExpressionType ErrBusy 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 ¶
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 ¶
AdminError - is a generic error for all admin APIs.
func (AdminError) Error ¶
func (ae AdminError) Error() string
type AllAccessDisabled ¶
type AllAccessDisabled GenericError
AllAccessDisabled All access to this object has been disabled
func (AllAccessDisabled) Error ¶
func (e AllAccessDisabled) Error() string
Error returns string an error formatted as the given text.
type AssumeRoleResponse ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
type BackendDown struct{}
BackendDown is returned for network errors or if the gateway's backend is down.
func (BackendDown) Error ¶
func (e BackendDown) Error() string
type BackendInfo ¶
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 ¶
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 ¶
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 ¶
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 ¶
func (a BitrotAlgorithm) Available() bool
Available reports whether the given algorithm is available.
func (*BitrotAlgorithm) DecodeMsg ¶
func (z *BitrotAlgorithm) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (BitrotAlgorithm) EncodeMsg ¶
func (z BitrotAlgorithm) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (BitrotAlgorithm) MarshalMsg ¶
func (z BitrotAlgorithm) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (BitrotAlgorithm) Msgsize ¶
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 ¶
func (a BitrotAlgorithm) New() hash.Hash
New returns a new hash.Hash calculating the given bitrot algorithm.
func (BitrotAlgorithm) String ¶
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 ¶
func (z *BitrotAlgorithm) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type BitrotVerifier ¶
type BitrotVerifier struct {
// contains filtered or unexported fields
}
BitrotVerifier can be used to verify protected data.
func NewBitrotVerifier ¶
func NewBitrotVerifier(algorithm BitrotAlgorithm, checksum []byte) *BitrotVerifier
NewBitrotVerifier returns a new BitrotVerifier implementing the given algorithm.
type Bucket ¶
type Bucket struct { Name string CreationDate string // time string of format "2006-01-02T15:04:05.000Z" }
Bucket container for bucket metadata
type BucketAccessPolicy ¶
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 ¶
type BucketAlreadyExists GenericError
BucketAlreadyExists the requested bucket name is not available.
func (BucketAlreadyExists) Error ¶
func (e BucketAlreadyExists) Error() string
type BucketAlreadyOwnedByYou ¶
type BucketAlreadyOwnedByYou GenericError
BucketAlreadyOwnedByYou already owned by you.
func (BucketAlreadyOwnedByYou) Error ¶
func (e BucketAlreadyOwnedByYou) Error() string
type BucketExists ¶
type BucketExists GenericError
BucketExists bucket exists.
func (BucketExists) Error ¶
func (e BucketExists) Error() string
type BucketInfo ¶
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 ¶
type BucketLifecycleNotFound GenericError
BucketLifecycleNotFound - no bucket lifecycle found.
func (BucketLifecycleNotFound) Error ¶
func (e BucketLifecycleNotFound) Error() string
type BucketMetadata ¶
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 ¶
func (z *BucketMetadata) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*BucketMetadata) EncodeMsg ¶
func (z *BucketMetadata) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (*BucketMetadata) Load ¶
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 ¶
func (z *BucketMetadata) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*BucketMetadata) Msgsize ¶
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 ¶
func (b *BucketMetadata) Save(ctx context.Context, api ObjectLayer) error
Save config to supplied ObjectLayer api.
func (*BucketMetadata) UnmarshalMsg ¶
func (z *BucketMetadata) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type BucketMetadataSys ¶
BucketMetadataSys captures all bucket metadata for a given cluster.
func NewBucketMetadataSys ¶
func NewBucketMetadataSys() *BucketMetadataSys
NewBucketMetadataSys - creates new policy system.
func (*BucketMetadataSys) Get ¶
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 ¶
func (sys *BucketMetadataSys) GetBucketTarget(bucket string, arn string) (madmin.BucketTarget, error)
GetBucketTarget returns the target for the bucket and arn.
func (*BucketMetadataSys) GetBucketTargetsConfig ¶
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 ¶
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 ¶
func (sys *BucketMetadataSys) GetLifecycleConfig(bucket string) (*lifecycle.Lifecycle, error)
GetLifecycleConfig returns configured lifecycle config The returned object may not be modified.
func (*BucketMetadataSys) GetNotificationConfig ¶
func (sys *BucketMetadataSys) GetNotificationConfig(bucket string) (*event.Config, error)
GetNotificationConfig returns configured notification config The returned object may not be modified.
func (*BucketMetadataSys) GetObjectLockConfig ¶
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 ¶
func (sys *BucketMetadataSys) GetPolicyConfig(bucket string) (*policy.Policy, error)
GetPolicyConfig returns configured bucket policy The returned object may not be modified.
func (*BucketMetadataSys) GetQuotaConfig ¶
func (sys *BucketMetadataSys) GetQuotaConfig(bucket string) (*madmin.BucketQuota, error)
GetQuotaConfig returns configured bucket quota The returned object may not be modified.
func (*BucketMetadataSys) GetReplicationConfig ¶
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 ¶
func (sys *BucketMetadataSys) GetSSEConfig(bucket string) (*bucketsse.BucketSSEConfig, error)
GetSSEConfig returns configured SSE config The returned object may not be modified.
func (*BucketMetadataSys) GetTaggingConfig ¶
func (sys *BucketMetadataSys) GetTaggingConfig(bucket string) (*tags.Tags, error)
GetTaggingConfig returns configured tagging config The returned object may not be modified.
func (*BucketMetadataSys) GetVersioningConfig ¶
func (sys *BucketMetadataSys) GetVersioningConfig(bucket string) (*versioning.Versioning, error)
GetVersioningConfig returns configured versioning config The returned object may not be modified.
func (*BucketMetadataSys) Init ¶
func (sys *BucketMetadataSys) Init(ctx context.Context, buckets []BucketInfo, objAPI ObjectLayer) error
Init - initializes bucket metadata system for all buckets.
func (*BucketMetadataSys) Remove ¶
func (sys *BucketMetadataSys) Remove(bucket string)
Remove bucket metadata from memory.
func (*BucketMetadataSys) Reset ¶
func (sys *BucketMetadataSys) Reset()
Reset the state of the BucketMetadataSys.
func (*BucketMetadataSys) Set ¶
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.
type BucketNameInvalid ¶
type BucketNameInvalid GenericError
BucketNameInvalid - bucketname provided is invalid.
func (BucketNameInvalid) Error ¶
func (e BucketNameInvalid) Error() string
Error returns string an error formatted as the given text.
type BucketNotEmpty ¶
type BucketNotEmpty GenericError
BucketNotEmpty bucket is not empty.
func (BucketNotEmpty) Error ¶
func (e BucketNotEmpty) Error() string
type BucketNotFound ¶
type BucketNotFound GenericError
BucketNotFound bucket does not exist.
func (BucketNotFound) Error ¶
func (e BucketNotFound) Error() string
type BucketObjectLockConfigNotFound ¶
type BucketObjectLockConfigNotFound GenericError
BucketObjectLockConfigNotFound - no bucket object lock config found
func (BucketObjectLockConfigNotFound) Error ¶
func (e BucketObjectLockConfigNotFound) Error() string
type BucketObjectLockSys ¶
type BucketObjectLockSys struct{}
BucketObjectLockSys - map of bucket and retention configuration.
func NewBucketObjectLockSys ¶
func NewBucketObjectLockSys() *BucketObjectLockSys
NewBucketObjectLockSys returns initialized BucketObjectLockSys
func (*BucketObjectLockSys) Get ¶
func (sys *BucketObjectLockSys) Get(bucketName string) (r objectlock.Retention, err error)
Get - Get retention configuration.
type BucketOptions ¶
BucketOptions represents bucket options for ObjectLayer bucket operations
type BucketPolicyNotFound ¶
type BucketPolicyNotFound GenericError
BucketPolicyNotFound - no bucket policy found.
func (BucketPolicyNotFound) Error ¶
func (e BucketPolicyNotFound) Error() string
type BucketQuotaConfigNotFound ¶
type BucketQuotaConfigNotFound GenericError
BucketQuotaConfigNotFound - no bucket quota config found.
func (BucketQuotaConfigNotFound) Error ¶
func (e BucketQuotaConfigNotFound) Error() string
type BucketQuotaExceeded ¶
type BucketQuotaExceeded GenericError
BucketQuotaExceeded - bucket quota exceeded.
func (BucketQuotaExceeded) Error ¶
func (e BucketQuotaExceeded) Error() string
type BucketQuotaSys ¶
type BucketQuotaSys struct {
// contains filtered or unexported fields
}
BucketQuotaSys - map of bucket and quota configuration.
func NewBucketQuotaSys ¶
func NewBucketQuotaSys() *BucketQuotaSys
NewBucketQuotaSys returns initialized BucketQuotaSys
func (*BucketQuotaSys) Get ¶
func (sys *BucketQuotaSys) Get(bucketName string) (*madmin.BucketQuota, error)
Get - Get quota configuration.
type BucketRemoteAlreadyExists ¶
type BucketRemoteAlreadyExists GenericError
BucketRemoteAlreadyExists remote already exists for this target type.
func (BucketRemoteAlreadyExists) Error ¶
func (e BucketRemoteAlreadyExists) Error() string
type BucketRemoteArnInvalid ¶
type BucketRemoteArnInvalid GenericError
BucketRemoteArnInvalid arn needs to be specified.
func (BucketRemoteArnInvalid) Error ¶
func (e BucketRemoteArnInvalid) Error() string
type BucketRemoteArnTypeInvalid ¶
type BucketRemoteArnTypeInvalid GenericError
BucketRemoteArnTypeInvalid arn type for remote is not valid.
func (BucketRemoteArnTypeInvalid) Error ¶
func (e BucketRemoteArnTypeInvalid) Error() string
type BucketRemoteConnectionErr ¶
type BucketRemoteConnectionErr GenericError
BucketRemoteConnectionErr remote target connection failure.
func (BucketRemoteConnectionErr) Error ¶
func (e BucketRemoteConnectionErr) Error() string
type BucketRemoteDestinationNotFound ¶
type BucketRemoteDestinationNotFound GenericError
BucketRemoteDestinationNotFound bucket does not exist.
func (BucketRemoteDestinationNotFound) Error ¶
func (e BucketRemoteDestinationNotFound) Error() string
type BucketRemoteLabelInUse ¶
type BucketRemoteLabelInUse GenericError
BucketRemoteLabelInUse remote already exists for this target label.
func (BucketRemoteLabelInUse) Error ¶
func (e BucketRemoteLabelInUse) Error() string
type BucketRemoteRemoveDisallowed ¶
type BucketRemoteRemoveDisallowed GenericError
BucketRemoteRemoveDisallowed when replication configuration exists
func (BucketRemoteRemoveDisallowed) Error ¶
func (e BucketRemoteRemoveDisallowed) Error() string
type BucketRemoteTargetNotFound ¶
type BucketRemoteTargetNotFound GenericError
BucketRemoteTargetNotFound remote target does not exist.
func (BucketRemoteTargetNotFound) Error ¶
func (e BucketRemoteTargetNotFound) Error() string
type BucketRemoteTargetNotVersioned ¶
type BucketRemoteTargetNotVersioned GenericError
BucketRemoteTargetNotVersioned remote target does not have versioning enabled.
func (BucketRemoteTargetNotVersioned) Error ¶
func (e BucketRemoteTargetNotVersioned) Error() string
type BucketReplicationConfigNotFound ¶
type BucketReplicationConfigNotFound GenericError
BucketReplicationConfigNotFound - no bucket replication config found
func (BucketReplicationConfigNotFound) Error ¶
func (e BucketReplicationConfigNotFound) Error() string
type BucketReplicationDestinationMissingLock ¶
type BucketReplicationDestinationMissingLock GenericError
BucketReplicationDestinationMissingLock bucket does not have object lock enabled.
func (BucketReplicationDestinationMissingLock) Error ¶
func (e BucketReplicationDestinationMissingLock) Error() string
type BucketReplicationSourceNotVersioned ¶
type BucketReplicationSourceNotVersioned GenericError
BucketReplicationSourceNotVersioned replication source does not have versioning enabled.
func (BucketReplicationSourceNotVersioned) Error ¶
func (e BucketReplicationSourceNotVersioned) Error() string
type BucketSSEConfigNotFound ¶
type BucketSSEConfigNotFound GenericError
BucketSSEConfigNotFound - no bucket encryption found
func (BucketSSEConfigNotFound) Error ¶
func (e BucketSSEConfigNotFound) Error() string
type BucketSSEConfigSys ¶
type BucketSSEConfigSys struct{}
BucketSSEConfigSys - in-memory cache of bucket encryption config
func NewBucketSSEConfigSys ¶
func NewBucketSSEConfigSys() *BucketSSEConfigSys
NewBucketSSEConfigSys - Creates an empty in-memory bucket encryption configuration cache
func (*BucketSSEConfigSys) Get ¶
func (sys *BucketSSEConfigSys) Get(bucket string) (*bucketsse.BucketSSEConfig, error)
Get - gets bucket encryption config for the given bucket.
type BucketTaggingNotFound ¶
type BucketTaggingNotFound GenericError
BucketTaggingNotFound - no bucket tags found
func (BucketTaggingNotFound) Error ¶
func (e BucketTaggingNotFound) Error() string
type BucketTargetSys ¶
BucketTargetSys represents bucket targets subsystem
func NewBucketTargetSys ¶
func NewBucketTargetSys() *BucketTargetSys
NewBucketTargetSys - creates new replication system.
func (*BucketTargetSys) GetRemoteArnWithLabel ¶
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 ¶
func (sys *BucketTargetSys) GetRemoteLabelWithArn(ctx context.Context, bucket, arnStr string) string
GetRemoteLabelWithArn returns a bucket target's label given its ARN
func (*BucketTargetSys) GetRemoteTargetClient ¶
func (sys *BucketTargetSys) GetRemoteTargetClient(ctx context.Context, arn string) *TargetClient
GetRemoteTargetClient returns minio-go client for replication target instance
func (*BucketTargetSys) GetRemoteTargetWithLabel ¶
func (sys *BucketTargetSys) GetRemoteTargetWithLabel(ctx context.Context, bucket, targetLabel string) *madmin.BucketTarget
GetRemoteTargetWithLabel returns bucket target given a target label
func (*BucketTargetSys) Init ¶
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 ¶
func (sys *BucketTargetSys) ListBucketTargets(ctx context.Context, bucket string) (*madmin.BucketTargets, error)
ListBucketTargets - gets list of bucket targets for this bucket.
func (*BucketTargetSys) ListTargets ¶
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 ¶
func (sys *BucketTargetSys) RemoveTarget(ctx context.Context, bucket, arnStr string) error
RemoveTarget - removes a remote bucket target for this source bucket.
func (*BucketTargetSys) SetTarget ¶
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 ¶
func (sys *BucketTargetSys) UpdateAllTargets(bucket string, tgts *madmin.BucketTargets)
UpdateAllTargets updates target to reflect metadata updates
type BucketUsageInfo ¶
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 ¶
type BucketVersioningSys struct{}
BucketVersioningSys - policy subsystem.
func NewBucketVersioningSys ¶
func NewBucketVersioningSys() *BucketVersioningSys
NewBucketVersioningSys - creates new versioning system.
func (*BucketVersioningSys) Enabled ¶
func (sys *BucketVersioningSys) Enabled(bucket string) bool
Enabled enabled versioning?
func (*BucketVersioningSys) Get ¶
func (sys *BucketVersioningSys) Get(bucket string) (*versioning.Versioning, error)
Get returns stored bucket policy
func (*BucketVersioningSys) Reset ¶
func (sys *BucketVersioningSys) Reset()
Reset BucketVersioningSys to initial state.
func (*BucketVersioningSys) Suspended ¶
func (sys *BucketVersioningSys) Suspended(bucket string) bool
Suspended suspended versioning?
type CacheChecksumInfoV1 ¶
type CacheChecksumInfoV1 struct { Algorithm string `json:"algorithm"` Blocksize int64 `json:"blocksize"` }
CacheChecksumInfoV1 - carries checksums of individual blocks on disk.
type CacheDiskStats ¶
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 ¶
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 ¶
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 ¶
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 ¶
func (c CacheStatusType) String() string
type CacheStorageInfo ¶
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 ¶
type CheckPreconditionFn func(o ObjectInfo) bool
CheckPreconditionFn returns true if precondition check failed.
type ChecksumAlgo ¶
type ChecksumAlgo uint8
ChecksumAlgo defines common type of different checksum algorithms
const (
HighwayHash ChecksumAlgo = 1
)
List of currently supported checksum algorithms
func (*ChecksumAlgo) DecodeMsg ¶
func (z *ChecksumAlgo) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (ChecksumAlgo) EncodeMsg ¶
func (z ChecksumAlgo) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (ChecksumAlgo) MarshalMsg ¶
func (z ChecksumAlgo) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (ChecksumAlgo) Msgsize ¶
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 ¶
func (z *ChecksumAlgo) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type ChecksumInfo ¶
type ChecksumInfo struct { PartNumber int Algorithm BitrotAlgorithm Hash []byte }
ChecksumInfo - carries checksums of individual scattered parts per disk.
func (*ChecksumInfo) DecodeMsg ¶
func (z *ChecksumInfo) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*ChecksumInfo) EncodeMsg ¶
func (z *ChecksumInfo) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (ChecksumInfo) MarshalJSON ¶
func (c ChecksumInfo) MarshalJSON() ([]byte, error)
MarshalJSON marshals the ChecksumInfo struct
func (*ChecksumInfo) MarshalMsg ¶
func (z *ChecksumInfo) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*ChecksumInfo) Msgsize ¶
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 ¶
func (c *ChecksumInfo) UnmarshalJSON(data []byte) error
UnmarshalJSON - custom checksum info unmarshaller
func (*ChecksumInfo) UnmarshalMsg ¶
func (z *ChecksumInfo) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type ClientGrantsResult ¶
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 ¶
type CommonPrefix struct {
Prefix string
}
CommonPrefix container for prefix response in ListObjectsResponse
type CompleteMultipartUpload ¶
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 ¶
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 ¶
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 ¶
type CompletedParts []CompletePart
CompletedParts - is a collection satisfying sort.Interface.
func (CompletedParts) Len ¶
func (a CompletedParts) Len() int
func (CompletedParts) Less ¶
func (a CompletedParts) Less(i, j int) bool
func (CompletedParts) Swap ¶
func (a CompletedParts) Swap(i, j int)
type ConfigDir ¶
type ConfigDir struct {
// contains filtered or unexported fields
}
ConfigDir - points to a user set directory.
type ConfigSys ¶
type ConfigSys struct{}
ConfigSys - config system.
func (*ConfigSys) Init ¶
func (sys *ConfigSys) Init(objAPI ObjectLayer) error
Init - initializes config system from config.json.
func (*ConfigSys) Load ¶
func (sys *ConfigSys) Load(objAPI ObjectLayer) error
Load - load config.json.
type ConnStats ¶
type ConnStats struct {
// contains filtered or unexported fields
}
ConnStats - Network statistics Count total input/output transferred bytes during the server's life.
type ConsoleLogger ¶
type ConsoleLogger struct {
Enable bool `json:"enable"`
}
ConsoleLogger is introduced to workaround the dependency about logrus
type CopyObjectPartResponse ¶
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 ¶
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 ¶
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 ¶
type DecryptBlocksReader struct {
// contains filtered or unexported fields
}
DecryptBlocksReader - decrypts multipart parts, while implementing a io.Reader compatible interface.
type DeleteError ¶
type DeleteError struct { Code string Message string Key string VersionID string `xml:"VersionId"` }
DeleteError structure.
type DeleteMarkerMTime ¶
DeleteMarkerMTime is an embedded type containing time.Time for XML marshal
func (DeleteMarkerMTime) MarshalXML ¶
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 ¶
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 ¶
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 ¶
type DeleteVersionsErrsResp struct {
Errs []error
}
DeleteVersionsErrsResp - collection of delete errors for bulk version deletes
type DeletedObject ¶
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 ¶
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 ¶
type DeletedObjectVersionInfo struct { DeletedObject Bucket string }
DeletedObjectVersionInfo has info on deleted object
type DiscoveryDocResp ¶
type DiscoveryDocResp struct { DiscoveryDoc openid.DiscoveryDoc UIVersion string `json:"uiVersion"` ClientID string `json:"clientId"` }
DiscoveryDocResp - OpenID discovery document reply.
type DiskInfo ¶
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. The above means that any added/deleted fields are incompatible.
func (*DiskInfo) MarshalMsg ¶
MarshalMsg implements msgp.Marshaler
type DownloadZipArgs ¶
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 ¶
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 ¶
Endpoint - any type of endpoint.
func NewEndpoint ¶
NewEndpoint - returns new endpoint based on given arguments.
func (Endpoint) Type ¶
func (endpoint Endpoint) Type() EndpointType
Type - returns type of endpoint.
func (*Endpoint) UpdateIsLocal ¶
UpdateIsLocal - resolves the host and updates if it is local or not.
type EndpointServerPools ¶
type EndpointServerPools []ZoneEndpoints
EndpointServerPools - list of list of endpoints
func (*EndpointServerPools) Add ¶
func (l *EndpointServerPools) Add(zeps ZoneEndpoints) error
Add add pool endpoints
func (EndpointServerPools) FirstLocal ¶
func (l EndpointServerPools) FirstLocal() bool
FirstLocal returns true if the first endpoint is local.
func (EndpointServerPools) GetLocalZoneIdx ¶
func (l EndpointServerPools) GetLocalZoneIdx(ep Endpoint) int
GetLocalZoneIdx returns the pool which endpoint belongs to locally. if ep is remote this code will return -1 poolIndex
func (EndpointServerPools) HTTPS ¶
func (l EndpointServerPools) HTTPS() bool
HTTPS - returns true if secure for URLEndpointType.
func (EndpointServerPools) Hostnames ¶
func (l EndpointServerPools) Hostnames() []string
Hostnames - returns list of unique hostnames
func (EndpointServerPools) Localhost ¶
func (l EndpointServerPools) Localhost() string
Localhost - returns the local hostname from list of endpoints
func (EndpointServerPools) NEndpoints ¶
func (l EndpointServerPools) NEndpoints() (count int)
NEndpoints - returns all nodes count
type EndpointType ¶
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 ¶
type Endpoints []Endpoint
Endpoints - list of same type of endpoint.
func NewEndpoints ¶
NewEndpoints - returns new endpoint list based on input args.
func (Endpoints) GetAllStrings ¶
GetAllStrings - returns allstring of all endpoints
func (Endpoints) GetString ¶
GetString - returns endpoint string of i-th endpoint (0-based), and empty string for invalid indexes.
func (Endpoints) UpdateIsLocal ¶
UpdateIsLocal - resolves the host and discovers the local host.
type Erasure ¶
type Erasure struct {
// contains filtered or unexported fields
}
Erasure - erasure encoding details.
func NewErasure ¶
func NewErasure(ctx context.Context, dataBlocks, parityBlocks int, blockSize int64) (e Erasure, err error)
NewErasure creates a new ErasureStorage.
func (Erasure) Decode ¶
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 ¶
DecodeDataAndParityBlocks decodes the given erasure-coded data and verifies it. It returns an error if the decoding failed.
func (*Erasure) DecodeDataBlocks ¶
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 ¶
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 ¶
EncodeData encodes the given data and returns the erasure-coded data. It returns an error if the erasure coding failed.
func (Erasure) Heal ¶
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 ¶
ShardFileOffset - returns the effective offset where erasure reading begins.
func (*Erasure) ShardFileSize ¶
ShardFileSize - returns final erasure size from original size.
type ErasureAlgo ¶
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 ¶
func (z *ErasureAlgo) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (ErasureAlgo) EncodeMsg ¶
func (z ErasureAlgo) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (ErasureAlgo) MarshalMsg ¶
func (z ErasureAlgo) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (ErasureAlgo) Msgsize ¶
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 ¶
func (e ErasureAlgo) String() string
func (*ErasureAlgo) UnmarshalMsg ¶
func (z *ErasureAlgo) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type ErasureInfo ¶
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 ¶
func (e *ErasureInfo) AddChecksumInfo(ckSumInfo ChecksumInfo)
AddChecksumInfo adds a checksum of a part.
func (*ErasureInfo) DecodeMsg ¶
func (z *ErasureInfo) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*ErasureInfo) EncodeMsg ¶
func (z *ErasureInfo) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (ErasureInfo) GetChecksumInfo ¶
func (e ErasureInfo) GetChecksumInfo(partNumber int) (ckSum ChecksumInfo)
GetChecksumInfo - get checksum of a part.
func (*ErasureInfo) MarshalMsg ¶
func (z *ErasureInfo) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*ErasureInfo) Msgsize ¶
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 ¶
func (e ErasureInfo) ShardFileSize(totalLength int64) int64
ShardFileSize - returns final erasure size from original size.
func (ErasureInfo) ShardSize ¶
func (e ErasureInfo) ShardSize() int64
ShardSize - returns actual shared size from erasure blockSize.
func (*ErasureInfo) UnmarshalMsg ¶
func (z *ErasureInfo) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type FSChecksumInfoV1 ¶
FSChecksumInfoV1 - carries checksums of individual blocks on disk.
func (FSChecksumInfoV1) MarshalJSON ¶
func (c FSChecksumInfoV1) MarshalJSON() ([]byte, error)
MarshalJSON marshals the FSChecksumInfoV1 struct
func (*FSChecksumInfoV1) UnmarshalJSON ¶
func (c *FSChecksumInfoV1) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals the the given data into the FSChecksumInfoV1 struct
type FSObjects ¶
type FSObjects struct { GatewayUnsupported // contains filtered or unexported fields }
FSObjects - Implements fs object layer.
func (*FSObjects) AbortMultipartUpload ¶
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 ¶
func (fs *FSObjects) BackendInfo() BackendInfo
BackendInfo - returns backend information
func (*FSObjects) CompleteMultipartUpload ¶
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 ¶
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 ¶
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 ¶
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 ¶
DeleteBucket - delete a bucket and all the metadata associated with the bucket including pending multipart, object metadata.
func (*FSObjects) DeleteBucketPolicy ¶
DeleteBucketPolicy - only needed for FS in NAS mode
func (*FSObjects) DeleteObject ¶
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 ¶
func (fs *FSObjects) DeleteObjectTags(ctx context.Context, bucket, object string, opts ObjectOptions) error
DeleteObjectTags - delete object tags from an existing object
func (*FSObjects) DeleteObjects ¶
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 ¶
GetBucketInfo - fetch bucket metadata info.
func (*FSObjects) GetBucketPolicy ¶
GetBucketPolicy - only needed for FS in NAS mode
func (*FSObjects) GetMetrics ¶
GetMetrics - no op
func (*FSObjects) GetMultipartInfo ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
HealFormat - no-op for fs, Valid only for Erasure.
func (*FSObjects) HealObject ¶
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 ¶
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 ¶
func (fs *FSObjects) Health(ctx context.Context, opts HealthOptions) HealthResult
Health returns health of the object layer
func (*FSObjects) IsCompressionSupported ¶
IsCompressionSupported returns whether compression is applicable for this layer.
func (*FSObjects) IsEncryptionSupported ¶
IsEncryptionSupported returns whether server side encryption is implemented for this layer.
func (*FSObjects) IsListenSupported ¶
IsListenSupported returns whether listen bucket notification is applicable for this layer.
func (*FSObjects) IsNotificationSupported ¶
IsNotificationSupported returns whether bucket notification is applicable for this layer.
func (*FSObjects) IsTaggingSupported ¶
IsTaggingSupported returns true, object tagging is supported in fs object layer.
func (*FSObjects) ListBuckets ¶
func (fs *FSObjects) ListBuckets(ctx context.Context) ([]BucketInfo, error)
ListBuckets - list all s3 compatible buckets (directories) at fsPath.
func (*FSObjects) ListMultipartUploads ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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) PutObject ¶
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 ¶
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 ¶
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 ¶
SetBucketPolicy - only needed for FS in NAS mode
func (*FSObjects) StorageInfo ¶
func (fs *FSObjects) StorageInfo(ctx context.Context) (StorageInfo, []error)
StorageInfo - returns underlying storage statistics.
func (*FSObjects) Walk ¶
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 ¶
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 Data []byte // optionally carries object data }
FileInfo - represents file stat information. The above means that any added/deleted fields are incompatible.
func (*FileInfo) AddObjectPart ¶
func (fi *FileInfo) AddObjectPart(partNumber int, partETag string, partSize int64, actualSize int64)
AddObjectPart - add a new object part in order.
func (*FileInfo) MarshalMsg ¶
MarshalMsg implements msgp.Marshaler
func (*FileInfo) Msgsize ¶
Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
func (FileInfo) ObjectToPartOffset ¶
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 ¶
func (fi FileInfo) ToObjectInfo(bucket, object string) ObjectInfo
ToObjectInfo - Converts metadata to object info.
type FileInfoCh ¶
FileInfoCh - file info channel
func (*FileInfoCh) Pop ¶
func (f *FileInfoCh) Pop() (fi FileInfo, ok bool)
Pop - pops a cached entry if any, or from the cached channel.
func (*FileInfoCh) Push ¶
func (f *FileInfoCh) Push(fi FileInfo)
Push - cache an entry, for Pop() later.
type FileInfoVersions ¶
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 ¶
func (z *FileInfoVersions) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*FileInfoVersions) EncodeMsg ¶
func (z *FileInfoVersions) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (*FileInfoVersions) MarshalMsg ¶
func (z *FileInfoVersions) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*FileInfoVersions) Msgsize ¶
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 ¶
func (z *FileInfoVersions) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type FileInfoVersionsCh ¶
type FileInfoVersionsCh struct { Ch chan FileInfoVersions Prev FileInfoVersions Valid bool }
FileInfoVersionsCh - file info versions channel
func (*FileInfoVersionsCh) Pop ¶
func (f *FileInfoVersionsCh) Pop() (fi FileInfoVersions, ok bool)
Pop - pops a cached entry if any, or from the cached channel.
func (*FileInfoVersionsCh) Push ¶
func (f *FileInfoVersionsCh) Push(fi FileInfoVersions)
Push - cache an entry, for Pop() later.
type FileLogger ¶
FileLogger is introduced to workaround the dependency about logrus
type FilesInfo ¶
FilesInfo represent a list of files, additionally indicates if the list is last.
func (*FilesInfo) MarshalMsg ¶
MarshalMsg implements msgp.Marshaler
type FilesInfoVersions ¶
type FilesInfoVersions struct { FilesVersions []FileInfoVersions IsTruncated bool }
FilesInfoVersions represents a list of file versions, additionally indicates if the list is last.
func (*FilesInfoVersions) DecodeMsg ¶
func (z *FilesInfoVersions) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*FilesInfoVersions) EncodeMsg ¶
func (z *FilesInfoVersions) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (*FilesInfoVersions) MarshalMsg ¶
func (z *FilesInfoVersions) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*FilesInfoVersions) Msgsize ¶
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 ¶
func (z *FilesInfoVersions) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type Gateway ¶
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 ¶
type GatewayLocker struct { ObjectLayer // contains filtered or unexported fields }
GatewayLocker implements custom NewNSLock implementation
func (*GatewayLocker) NewNSLock ¶
func (l *GatewayLocker) NewNSLock(bucket string, objects ...string) RWLocker
NewNSLock - implements gateway level locker
func (*GatewayLocker) Walk ¶
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 ¶
type GatewayUnsupported struct{}
GatewayUnsupported list of unsupported call stubs for gateway.
func (GatewayUnsupported) AbortMultipartUpload ¶
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 ¶
func (a GatewayUnsupported) BackendInfo() BackendInfo
BackendInfo returns the underlying backend information
func (GatewayUnsupported) CompleteMultipartUpload ¶
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 ¶
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 ¶
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 ¶
func (a GatewayUnsupported) CrawlAndGetDataUsage(ctx context.Context, bf *bloomFilter, updates chan<- DataUsageInfo) error
CrawlAndGetDataUsage - crawl is not implemented for gateway
func (GatewayUnsupported) DeleteBucketLifecycle ¶
func (a GatewayUnsupported) DeleteBucketLifecycle(ctx context.Context, bucket string) error
DeleteBucketLifecycle deletes all lifecycle policies on a bucket
func (GatewayUnsupported) DeleteBucketPolicy ¶
func (a GatewayUnsupported) DeleteBucketPolicy(ctx context.Context, bucket string) error
DeleteBucketPolicy deletes all policies on bucket
func (GatewayUnsupported) DeleteBucketSSEConfig ¶
func (a GatewayUnsupported) DeleteBucketSSEConfig(ctx context.Context, bucket string) error
DeleteBucketSSEConfig deletes bucket encryption config on a bucket
func (GatewayUnsupported) DeleteObjectTags ¶
func (a GatewayUnsupported) DeleteObjectTags(ctx context.Context, bucket, object string, opts ObjectOptions) error
DeleteObjectTags - not implemented.
func (GatewayUnsupported) GetBucketLifecycle ¶
func (a GatewayUnsupported) GetBucketLifecycle(ctx context.Context, bucket string) (*lifecycle.Lifecycle, error)
GetBucketLifecycle retrieves lifecycle configuration of a bucket.
func (GatewayUnsupported) GetBucketPolicy ¶
func (a GatewayUnsupported) GetBucketPolicy(ctx context.Context, bucket string) (bucketPolicy *policy.Policy, err error)
GetBucketPolicy will get policy on bucket
func (GatewayUnsupported) GetBucketSSEConfig ¶
func (a GatewayUnsupported) GetBucketSSEConfig(ctx context.Context, bucket string) (*bucketsse.BucketSSEConfig, error)
GetBucketSSEConfig returns bucket encryption config on a bucket
func (GatewayUnsupported) GetBucketVersioning ¶
func (a GatewayUnsupported) GetBucketVersioning(ctx context.Context, bucket string) (*versioning.Versioning, error)
GetBucketVersioning retrieves versioning configuration of a bucket.
func (GatewayUnsupported) GetMetrics ¶
func (a GatewayUnsupported) GetMetrics(ctx context.Context) (*Metrics, error)
GetMetrics - no op
func (GatewayUnsupported) GetMultipartInfo ¶
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 ¶
func (a GatewayUnsupported) GetObjectTags(ctx context.Context, bucket, object string, opts ObjectOptions) (*tags.Tags, error)
GetObjectTags - not implemented.
func (GatewayUnsupported) HealBucket ¶
func (a GatewayUnsupported) HealBucket(ctx context.Context, bucket string, opts madmin.HealOpts) (madmin.HealResultItem, error)
HealBucket - Not implemented stub
func (GatewayUnsupported) HealFormat ¶
func (a GatewayUnsupported) HealFormat(ctx context.Context, dryRun bool) (madmin.HealResultItem, error)
HealFormat - Not implemented stub
func (GatewayUnsupported) HealObject ¶
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 ¶
func (a GatewayUnsupported) HealObjects(ctx context.Context, bucket, prefix string, opts madmin.HealOpts, fn HealObjectFn) (e error)
HealObjects - Not implemented stub
func (GatewayUnsupported) Health ¶
func (a GatewayUnsupported) Health(_ context.Context, _ HealthOptions) HealthResult
Health - No Op.
func (GatewayUnsupported) IsCompressionSupported ¶
func (a GatewayUnsupported) IsCompressionSupported() bool
IsCompressionSupported returns whether compression is applicable for this layer.
func (GatewayUnsupported) IsEncryptionSupported ¶
func (a GatewayUnsupported) IsEncryptionSupported() bool
IsEncryptionSupported returns whether server side encryption is implemented for this layer.
func (GatewayUnsupported) IsListenSupported ¶
func (a GatewayUnsupported) IsListenSupported() bool
IsListenSupported returns whether listen bucket notification is applicable for this layer.
func (GatewayUnsupported) IsNotificationSupported ¶
func (a GatewayUnsupported) IsNotificationSupported() bool
IsNotificationSupported returns whether bucket notification is applicable for this layer.
func (GatewayUnsupported) IsTaggingSupported ¶
func (a GatewayUnsupported) IsTaggingSupported() bool
IsTaggingSupported returns whether object tagging is supported or not for this layer.
func (GatewayUnsupported) ListMultipartUploads ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
func (a GatewayUnsupported) NewNSLock(bucket string, objects ...string) RWLocker
NewNSLock is a dummy stub for gateway.
func (GatewayUnsupported) PutObjectPart ¶
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 ¶
func (a GatewayUnsupported) PutObjectTags(ctx context.Context, bucket, object string, tags string, opts ObjectOptions) error
PutObjectTags - not implemented.
func (GatewayUnsupported) SetBucketLifecycle ¶
func (a GatewayUnsupported) SetBucketLifecycle(ctx context.Context, bucket string, lifecycle *lifecycle.Lifecycle) error
SetBucketLifecycle enables lifecycle policies on a bucket.
func (GatewayUnsupported) SetBucketPolicy ¶
func (a GatewayUnsupported) SetBucketPolicy(ctx context.Context, bucket string, bucketPolicy *policy.Policy) error
SetBucketPolicy sets policy on bucket
func (GatewayUnsupported) SetBucketSSEConfig ¶
func (a GatewayUnsupported) SetBucketSSEConfig(ctx context.Context, bucket string, config *bucketsse.BucketSSEConfig) error
SetBucketSSEConfig sets bucket encryption config on a bucket
func (GatewayUnsupported) SetBucketVersioning ¶
func (a GatewayUnsupported) SetBucketVersioning(ctx context.Context, bucket string, v *versioning.Versioning) error
SetBucketVersioning enables versioning on a bucket.
func (GatewayUnsupported) SetDriveCount ¶
func (a GatewayUnsupported) SetDriveCount() int
SetDriveCount no-op
func (GatewayUnsupported) Walk ¶
func (a GatewayUnsupported) Walk(ctx context.Context, bucket, prefix string, results chan<- ObjectInfo, opts ObjectOptions) error
Walk - Not implemented stub
type GenerateAuthReply ¶
type GenerateAuthReply struct { AccessKey string `json:"accessKey"` SecretKey string `json:"secretKey"` UIVersion string `json:"uiVersion"` }
GenerateAuthReply - reply for GenerateAuth
type GenericError ¶
GenericError - generic object layer error.
func (GenericError) Unwrap ¶
func (e GenericError) Unwrap() error
Unwrap the error to its underlying error.
type GetBucketPolicyArgs ¶
type GetBucketPolicyArgs struct { BucketName string `json:"bucketName"` Prefix string `json:"prefix"` }
GetBucketPolicyArgs - get bucket policy args.
func (*GetBucketPolicyArgs) ToKeyValue ¶
func (args *GetBucketPolicyArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for GetBucketPolicyArgs
type GetBucketPolicyRep ¶
type GetBucketPolicyRep struct { UIVersion string `json:"uiVersion"` Policy miniogopolicy.BucketPolicy `json:"policy"` }
GetBucketPolicyRep - get bucket policy reply.
type GetObjectInfoFn ¶
type GetObjectInfoFn func(ctx context.Context, bucket, object string, opts ObjectOptions) (ObjectInfo, error)
GetObjectInfoFn is the signature of GetObjectInfo function.
type GetObjectReader ¶
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 ¶
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 ¶
func (g *GetObjectReader) Close() error
Close - calls the cleanup actions in reverse order
type GroupInfo ¶
type GroupInfo struct { Version int `json:"version"` Status string `json:"status"` Members []string `json:"members"` }
GroupInfo contains info about a group
type HTTPAPIStats ¶
HTTPAPIStats holds statistics information about a given API in the requests.
func (*HTTPAPIStats) Dec ¶
func (stats *HTTPAPIStats) Dec(api string)
Dec increments the api stats counter.
func (*HTTPAPIStats) Inc ¶
func (stats *HTTPAPIStats) Inc(api string)
Inc increments the api stats counter.
func (*HTTPAPIStats) Load ¶
func (stats *HTTPAPIStats) Load() map[string]int
Load returns the recorded stats.
type HTTPConsoleLoggerSys ¶
HTTPConsoleLoggerSys holds global console logger state
func NewConsoleLogger ¶
func NewConsoleLogger(ctx context.Context) *HTTPConsoleLoggerSys
NewConsoleLogger - creates new HTTPConsoleLoggerSys with all nodes subscribed to the console logging pub sub system
func (*HTTPConsoleLoggerSys) Content ¶
func (sys *HTTPConsoleLoggerSys) Content() (logs []log.Entry)
Content returns the console stdout log
func (*HTTPConsoleLoggerSys) Endpoint ¶
func (sys *HTTPConsoleLoggerSys) Endpoint() string
Endpoint - dummy function for interface compatibility
func (*HTTPConsoleLoggerSys) HasLogListeners ¶
func (sys *HTTPConsoleLoggerSys) HasLogListeners() bool
HasLogListeners returns true if console log listeners are registered for this node or peers
func (*HTTPConsoleLoggerSys) Send ¶
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 ¶
func (sys *HTTPConsoleLoggerSys) SetNodeName(endpointServerPools EndpointServerPools)
SetNodeName - sets the node name if any after distributed setup has initialized
func (*HTTPConsoleLoggerSys) String ¶
func (sys *HTTPConsoleLoggerSys) String() string
String - stringer function for interface compatibility
func (*HTTPConsoleLoggerSys) Subscribe ¶
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 ¶
func (sys *HTTPConsoleLoggerSys) Validate() error
Validate if HTTPConsoleLoggerSys is valid, always returns nil right now
type HTTPRangeSpec ¶
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 ¶
func (h *HTTPRangeSpec) GetLength(resourceSize int64) (rangeLength int64, err error)
GetLength - get length of range
func (*HTTPRangeSpec) GetOffsetLength ¶
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 ¶
func (h *HTTPRangeSpec) String(resourceSize int64) string
String returns stringified representation of range for a particular resource size.
type HTTPStats ¶
type HTTPStats struct {
// contains filtered or unexported fields
}
HTTPStats holds statistics information about HTTP requests made by all clients
type HealObjectFn ¶
HealObjectFn closure function heals the object.
type HealthOptions ¶
type HealthOptions struct {
Maintenance bool
}
HealthOptions takes input options to return sepcific information
type HealthResult ¶
HealthResult returns the current state of the system, also additionally with any specific heuristic information which was queried
type Help ¶
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
type IAMEtcdStore ¶
IAMEtcdStore implements IAMStorageAPI
type IAMObjectStore ¶
type IAMObjectStore struct { // Protect assignment to objAPI sync.RWMutex // contains filtered or unexported fields }
IAMObjectStore implements IAMStorageAPI
type IAMStorageAPI ¶
type IAMStorageAPI interface {
// contains filtered or unexported methods
}
IAMStorageAPI defines an interface for the IAM persistence layer
type IAMSys ¶
IAMSys - config system.
func (*IAMSys) AddUsersToGroup ¶
AddUsersToGroup - adds users to a group, creating the group if needed. No error if user(s) already are in the group.
func (*IAMSys) CurrentPolicies ¶
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 ¶
DeletePolicy - deletes a canned policy from backend or etcd.
func (*IAMSys) DeleteServiceAccount ¶
DeleteServiceAccount - delete a service account
func (*IAMSys) DeleteUser ¶
DeleteUser - delete user (only for long-term users not STS users).
func (*IAMSys) EnableLDAPSys ¶
func (sys *IAMSys) EnableLDAPSys()
EnableLDAPSys - enable ldap system users type.
func (*IAMSys) GetCombinedPolicy ¶
GetCombinedPolicy returns a combined policy combining all policies
func (*IAMSys) GetGroupDescription ¶
GetGroupDescription - builds up group description
func (*IAMSys) GetServiceAccountParent ¶
GetServiceAccountParent - gets information about a service account
func (*IAMSys) GetUser ¶
func (sys *IAMSys) GetUser(accessKey string) (cred auth.Credentials, ok bool)
GetUser - get user credentials
func (*IAMSys) GetUserInfo ¶
GetUserInfo - get info on a user.
func (*IAMSys) InfoPolicy ¶
InfoPolicy - expands the canned policy into its JSON structure.
func (*IAMSys) Init ¶
func (sys *IAMSys) Init(ctx context.Context, objAPI ObjectLayer)
Init - initializes config system by reading entries from config/iam
func (*IAMSys) InitStore ¶
func (sys *IAMSys) InitStore(objAPI ObjectLayer)
InitStore initializes IAM stores
func (*IAMSys) Initialized ¶
Initialized check if IAM is initialized
func (*IAMSys) IsAllowed ¶
IsAllowed - checks given policy args is allowed to continue the Rest API.
func (*IAMSys) IsAllowedLDAPSTS ¶
IsAllowedLDAPSTS - checks for LDAP specific claims and values
func (*IAMSys) IsAllowedSTS ¶
IsAllowedSTS is meant for STS based temporary credentials, which implements claims validation and verification other than applying policies.
func (*IAMSys) IsAllowedServiceAccount ¶
IsAllowedServiceAccount - checks if the given service account is allowed to perform actions. The permission of the parent user is checked first
func (*IAMSys) IsServiceAccount ¶
IsServiceAccount - returns if given key is a service account
func (*IAMSys) IsTempUser ¶
IsTempUser - returns if given key is a temporary user.
func (*IAMSys) ListGroups ¶
ListGroups - lists groups.
func (*IAMSys) ListPolicies ¶
ListPolicies - lists all canned policies.
func (*IAMSys) ListServiceAccounts ¶
ListServiceAccounts - lists all services accounts associated to a specific user
func (*IAMSys) LoadGroup ¶
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 ¶
func (sys *IAMSys) LoadPolicy(objAPI ObjectLayer, policyName string) error
LoadPolicy - reloads a specific canned policy from backend disks or etcd.
func (*IAMSys) LoadPolicyMapping ¶
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 ¶
LoadServiceAccount - reloads a specific service account from backend disks or etcd.
func (*IAMSys) LoadUser ¶
func (sys *IAMSys) LoadUser(objAPI ObjectLayer, accessKey string, userType IAMUserType) error
LoadUser - reloads a specific user from backend disks or etcd.
func (*IAMSys) NewServiceAccount ¶
func (sys *IAMSys) NewServiceAccount(ctx context.Context, parentUser string, sessionPolicy *iampolicy.Policy) (auth.Credentials, error)
NewServiceAccount - create a new service account
func (*IAMSys) PolicyDBGet ¶
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 ¶
PolicyDBSet - sets a policy for a user or group in the PolicyDB.
func (*IAMSys) RemoveUsersFromGroup ¶
RemoveUsersFromGroup - remove users from group. If no users are given, and the group is empty, deletes the group as well.
func (*IAMSys) SetGroupStatus ¶
SetGroupStatus - enable/disabled a group
func (*IAMSys) SetTempUser ¶
SetTempUser - set temporary user credentials, these credentials have an expiry.
func (*IAMSys) SetUserSecretKey ¶
SetUserSecretKey - sets user secret key
func (*IAMSys) SetUserStatus ¶
func (sys *IAMSys) SetUserStatus(accessKey string, status madmin.AccountStatus) error
SetUserStatus - sets current user status, supports disabled or enabled.
type IncompleteBody ¶
type IncompleteBody GenericError
IncompleteBody You did not provide the number of bytes specified by the Content-Length HTTP header.
func (IncompleteBody) Error ¶
func (e IncompleteBody) Error() string
Error returns string an error formatted as the given text.
type InitiateMultipartUploadResponse ¶
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 InsufficientReadQuorum ¶
type InsufficientReadQuorum GenericError
InsufficientReadQuorum storage cannot satisfy quorum for read operation.
func (InsufficientReadQuorum) Error ¶
func (e InsufficientReadQuorum) Error() string
func (InsufficientReadQuorum) Unwrap ¶
func (e InsufficientReadQuorum) Unwrap() error
Unwrap the error.
type InsufficientWriteQuorum ¶
type InsufficientWriteQuorum GenericError
InsufficientWriteQuorum storage cannot satisfy quorum for write operation.
func (InsufficientWriteQuorum) Error ¶
func (e InsufficientWriteQuorum) Error() string
func (InsufficientWriteQuorum) Unwrap ¶
func (e InsufficientWriteQuorum) Unwrap() error
Unwrap the error.
type InvalidArgument ¶
type InvalidArgument GenericError
InvalidArgument incorrect input argument
func (InvalidArgument) Error ¶
func (e InvalidArgument) Error() string
type InvalidETag ¶
type InvalidETag struct{}
InvalidETag error returned when the etag has changed on disk
func (InvalidETag) Error ¶
func (e InvalidETag) Error() string
type InvalidMarkerPrefixCombination ¶
type InvalidMarkerPrefixCombination struct {
Marker, Prefix string
}
InvalidMarkerPrefixCombination - invalid marker and prefix combination.
func (InvalidMarkerPrefixCombination) Error ¶
func (e InvalidMarkerPrefixCombination) Error() string
type InvalidPart ¶
InvalidPart One or more of the specified parts could not be found
func (InvalidPart) Error ¶
func (e InvalidPart) Error() string
type InvalidRange ¶
InvalidRange - invalid range typed error.
func (InvalidRange) Error ¶
func (e InvalidRange) Error() string
type InvalidUploadID ¶
InvalidUploadID invalid upload id.
func (InvalidUploadID) Error ¶
func (e InvalidUploadID) Error() string
type InvalidUploadIDKeyCombination ¶
type InvalidUploadIDKeyCombination struct {
UploadIDMarker, KeyMarker string
}
InvalidUploadIDKeyCombination - invalid upload id and key marker combination.
func (InvalidUploadIDKeyCombination) Error ¶
func (e InvalidUploadIDKeyCombination) Error() string
type InvalidVersionID ¶
type InvalidVersionID GenericError
InvalidVersionID invalid version id
func (InvalidVersionID) Error ¶
func (e InvalidVersionID) Error() string
type IsLeafDirFunc ¶
IsLeafDirFunc - A function isLeafDir of type isLeafDirFunc is used to detect if an entry is empty directory.
type IsLeafFunc ¶
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:
- FS backend object listing - isLeaf is true if the entry has no trailing "/"
- Erasure backend object listing - isLeaf is true if the entry is a directory and contains xl.meta
type KeyValueMap ¶
KeyValueMap extends builtin map to support setting and getting select fields like BucketName, ObjectName, Prefix, etc.
func (*KeyValueMap) SetBucket ¶
func (km *KeyValueMap) SetBucket(bucket string)
SetBucket sets the given bucket to the KeyValueMap
func (*KeyValueMap) SetExpiry ¶
func (km *KeyValueMap) SetExpiry(expiry int64)
SetExpiry sets the expiry to the KeyValueMap
func (*KeyValueMap) SetHostname ¶
func (km *KeyValueMap) SetHostname(hostname string)
SetHostname sets the hostname to the KeyValueMap
func (*KeyValueMap) SetMarker ¶
func (km *KeyValueMap) SetMarker(marker string)
SetMarker sets the given marker to the KeyValueMap
func (*KeyValueMap) SetObject ¶
func (km *KeyValueMap) SetObject(object string)
SetObject sets the given object to the KeyValueMap
func (*KeyValueMap) SetObjects ¶
func (km *KeyValueMap) SetObjects(objects []string)
SetObjects sets the list of objects to the KeyValueMap
func (*KeyValueMap) SetPolicy ¶
func (km *KeyValueMap) SetPolicy(policy string)
SetPolicy sets the given policy to the KeyValueMap
func (*KeyValueMap) SetPrefix ¶
func (km *KeyValueMap) SetPrefix(prefix string)
SetPrefix sets the given prefix to the KeyValueMap
func (*KeyValueMap) SetUsername ¶
func (km *KeyValueMap) SetUsername(username string)
SetUsername sets the username to the KeyValueMap
type LDAPIdentityResult ¶
type LDAPIdentityResult struct {
Credentials auth.Credentials `xml:",omitempty"`
}
LDAPIdentityResult - contains credentials for a successful AssumeRoleWithLDAPIdentity request.
type LifecycleSys ¶
type LifecycleSys struct{}
LifecycleSys - Bucket lifecycle subsystem.
func NewLifecycleSys ¶
func NewLifecycleSys() *LifecycleSys
NewLifecycleSys - creates new lifecycle system.
type ListAllBucketPoliciesArgs ¶
type ListAllBucketPoliciesArgs struct {
BucketName string `json:"bucketName"`
}
ListAllBucketPoliciesArgs - get all bucket policies.
func (*ListAllBucketPoliciesArgs) ToKeyValue ¶
func (args *ListAllBucketPoliciesArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for ListAllBucketPoliciesArgs
type ListAllBucketPoliciesRep ¶
type ListAllBucketPoliciesRep struct { UIVersion string `json:"uiVersion"` Policies []BucketAccessPolicy `json:"policies"` }
ListAllBucketPoliciesRep - get all bucket policy reply.
type ListBucketsRep ¶
type ListBucketsRep struct { Buckets []WebBucketInfo `json:"buckets"` UIVersion string `json:"uiVersion"` }
ListBucketsRep - list buckets response
type ListBucketsResponse ¶
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 ¶
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 ¶
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 ¶
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 ¶
func FromMinioClientListMultipartsInfo(lmur minio.ListMultipartUploadsResult) ListMultipartsInfo
FromMinioClientListMultipartsInfo converts minio ListMultipartUploadsResult to ListMultipartsInfo
func (ListMultipartsInfo) Lookup ¶
func (lm ListMultipartsInfo) Lookup(uploadID string) bool
Lookup - returns if uploadID is valid
type ListObjectVersionsInfo ¶
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 ¶
type ListObjectsArgs struct { BucketName string `json:"bucketName"` Prefix string `json:"prefix"` Marker string `json:"marker"` }
ListObjectsArgs - list object args.
func (*ListObjectsArgs) ToKeyValue ¶
func (args *ListObjectsArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for ListObjectsArgs
type ListObjectsInfo ¶
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 ¶
func FromMinioClientListBucketResult(bucket string, result minio.ListBucketResult) ListObjectsInfo
FromMinioClientListBucketResult converts minio ListBucketResult to ListObjectsInfo
type ListObjectsRep ¶
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 ¶
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 ¶
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 ¶
func FromMinioClientListBucketResultToV2Info(bucket string, result minio.ListBucketResult) ListObjectsV2Info
FromMinioClientListBucketResultToV2Info converts minio ListBucketResult to ListObjectsV2Info
func FromMinioClientListBucketV2Result ¶
func FromMinioClientListBucketV2Result(bucket string, result minio.ListBucketV2Result) ListObjectsV2Info
FromMinioClientListBucketV2Result converts minio ListBucketResult to ListObjectsInfo
type ListObjectsV2Response ¶
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 ¶
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 ¶
func FromMinioClientListPartsInfo(lopr minio.ListObjectPartsResult) ListPartsInfo
FromMinioClientListPartsInfo converts minio ListObjectPartsResult to ListPartsInfo
type ListPartsResponse ¶
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 ¶
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 ¶
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 LoginArgs ¶
type LoginArgs struct { Username string `json:"username" form:"username"` Password string `json:"password" form:"password"` }
LoginArgs - login arguments.
func (*LoginArgs) ToKeyValue ¶
func (args *LoginArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for LoginArgs
type LoginSTSArgs ¶
type LoginSTSArgs struct {
Token string `json:"token" form:"token"`
}
LoginSTSArgs - login arguments.
func (*LoginSTSArgs) ToKeyValue ¶
func (args *LoginSTSArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for LoginSTSArgs
type MakeBucketArgs ¶
type MakeBucketArgs struct {
BucketName string `json:"bucketName"`
}
MakeBucketArgs - make bucket args.
func (*MakeBucketArgs) ToKeyValue ¶
func (args *MakeBucketArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for MakeBucketArgs
type MalformedUploadID ¶
type MalformedUploadID struct {
UploadID string
}
MalformedUploadID malformed upload id.
func (MalformedUploadID) Error ¶
func (e MalformedUploadID) Error() string
type MappedPolicy ¶
MappedPolicy represents a policy name mapped to a user or group
type MetadataEntry ¶
MetadataEntry denotes name and value.
type MethodNotAllowed ¶
type MethodNotAllowed GenericError
MethodNotAllowed on the object
func (MethodNotAllowed) Error ¶
func (e MethodNotAllowed) Error() string
type Metrics ¶
type Metrics struct {
// contains filtered or unexported fields
}
Metrics - represents bytes served from backend only implemented for S3 Gateway
func (*Metrics) GetBytesReceived ¶
GetBytesReceived - Get total bytes received from gateway backend
func (*Metrics) GetBytesSent ¶
GetBytesSent - Get total bytes received from gateway backend
func (*Metrics) GetRequests ¶
func (s *Metrics) GetRequests() RequestStats
GetRequests - Get total number of Get & Headrequests sent to gateway backend
func (*Metrics) IncBytesReceived ¶
IncBytesReceived - Increase total bytes received from gateway backend
func (*Metrics) IncBytesSent ¶
IncBytesSent - Increase total bytes sent to gateway backend
func (*Metrics) IncRequests ¶
IncRequests - Increase request count sent to gateway backend by 1
type MetricsTransport ¶
MetricsTransport is a custom wrapper around Transport to track metrics
type MultipartInfo ¶
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 ¶
type NotImplemented struct {
API string
}
NotImplemented If a feature is not implemented
func (NotImplemented) Error ¶
func (e NotImplemented) Error() string
type NotificationGroup ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
NotificationSys - notification system.
func NewNotificationSys ¶
func NewNotificationSys(endpoints EndpointServerPools) *NotificationSys
NewNotificationSys - creates new notification system object.
func (*NotificationSys) AddRulesMap ¶
func (sys *NotificationSys) AddRulesMap(bucketName string, rulesMap event.RulesMap)
AddRulesMap - adds rules map for bucket name.
func (*NotificationSys) BackgroundHealStatus ¶
func (sys *NotificationSys) BackgroundHealStatus() ([]madmin.BgHealState, []NotificationPeerErr)
BackgroundHealStatus - returns background heal status of all peers
func (*NotificationSys) CPUInfo ¶
func (sys *NotificationSys) CPUInfo(ctx context.Context) []madmin.ServerCPUInfo
CPUInfo - CPU information
func (*NotificationSys) ConfiguredTargetIDs ¶
func (sys *NotificationSys) ConfiguredTargetIDs() []event.TargetID
ConfiguredTargetIDs - returns list of configured target id's
func (*NotificationSys) DeleteBucketMetadata ¶
func (sys *NotificationSys) DeleteBucketMetadata(ctx context.Context, bucketName string)
DeleteBucketMetadata - calls DeleteBucketMetadata call on all peers
func (*NotificationSys) DeletePolicy ¶
func (sys *NotificationSys) DeletePolicy(policyName string) []NotificationPeerErr
DeletePolicy - deletes policy across all peers.
func (*NotificationSys) DeleteServiceAccount ¶
func (sys *NotificationSys) DeleteServiceAccount(accessKey string) []NotificationPeerErr
DeleteServiceAccount - deletes a specific service account across all peers
func (*NotificationSys) DeleteUser ¶
func (sys *NotificationSys) DeleteUser(accessKey string) []NotificationPeerErr
DeleteUser - deletes a specific user across all peers
func (*NotificationSys) DiskHwInfo ¶
func (sys *NotificationSys) DiskHwInfo(ctx context.Context) []madmin.ServerDiskHwInfo
DiskHwInfo - Disk HW information
func (*NotificationSys) DispatchNetPerfChan ¶
func (sys *NotificationSys) DispatchNetPerfChan(ctx context.Context) chan madmin.ServerNetHealthInfo
DispatchNetPerfChan - Net perf information from other nodes
func (*NotificationSys) DispatchNetPerfInfo ¶
func (sys *NotificationSys) DispatchNetPerfInfo(ctx context.Context) []madmin.ServerNetHealthInfo
DispatchNetPerfInfo - Net perf information from other nodes
func (*NotificationSys) DownloadProfilingData ¶
DownloadProfilingData - download profiling data from all remote peers.
func (*NotificationSys) DrivePerfInfo ¶
func (sys *NotificationSys) DrivePerfInfo(ctx context.Context) []madmin.ServerDrivesInfo
DrivePerfInfo - Drive perf information
func (*NotificationSys) DrivePerfInfoChan ¶
func (sys *NotificationSys) DrivePerfInfoChan(ctx context.Context) chan madmin.ServerDrivesInfo
DrivePerfInfoChan - Drive perf information
func (*NotificationSys) GetARNList ¶
func (sys *NotificationSys) GetARNList(onlyActive bool) []string
GetARNList - returns available ARNs.
func (*NotificationSys) GetBandwidthReports ¶
func (sys *NotificationSys) GetBandwidthReports(ctx context.Context, buckets ...string) bandwidth.Report
GetBandwidthReports - gets the bandwidth report from all nodes including self.
func (*NotificationSys) GetLocalDiskIDs ¶
func (sys *NotificationSys) GetLocalDiskIDs(ctx context.Context) (localDiskIDs [][]string)
GetLocalDiskIDs - return disk ids of the local disks of the peers.
func (*NotificationSys) Init ¶
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 ¶
func (sys *NotificationSys) LoadBucketMetadata(ctx context.Context, bucketName string)
LoadBucketMetadata - calls LoadBucketMetadata call on all peers
func (*NotificationSys) LoadGroup ¶
func (sys *NotificationSys) LoadGroup(group string) []NotificationPeerErr
LoadGroup - loads a specific group on all peers.
func (*NotificationSys) LoadPolicy ¶
func (sys *NotificationSys) LoadPolicy(policyName string) []NotificationPeerErr
LoadPolicy - reloads a specific modified policy across all peers
func (*NotificationSys) LoadPolicyMapping ¶
func (sys *NotificationSys) LoadPolicyMapping(userOrGroup string, isGroup bool) []NotificationPeerErr
LoadPolicyMapping - reloads a policy mapping across all peers
func (*NotificationSys) LoadServiceAccount ¶
func (sys *NotificationSys) LoadServiceAccount(accessKey string) []NotificationPeerErr
LoadServiceAccount - reloads a specific service account across all peers
func (*NotificationSys) LoadUser ¶
func (sys *NotificationSys) LoadUser(accessKey string, temp bool) []NotificationPeerErr
LoadUser - reloads a specific user across all peers
func (*NotificationSys) MemInfo ¶
func (sys *NotificationSys) MemInfo(ctx context.Context) []madmin.ServerMemInfo
MemInfo - Mem information
func (*NotificationSys) NetInfo ¶
func (sys *NotificationSys) NetInfo(ctx context.Context) madmin.ServerNetHealthInfo
NetInfo - Net information
func (*NotificationSys) NetPerfParallelInfo ¶
func (sys *NotificationSys) NetPerfParallelInfo(ctx context.Context) madmin.ServerNetHealthInfo
NetPerfParallelInfo - Performs Net parallel tests
func (*NotificationSys) OsInfo ¶
func (sys *NotificationSys) OsInfo(ctx context.Context) []madmin.ServerOsInfo
OsInfo - Os information
func (*NotificationSys) ProcInfo ¶
func (sys *NotificationSys) ProcInfo(ctx context.Context) []madmin.ServerProcInfo
ProcInfo - Process information
func (*NotificationSys) RemoveAllRemoteTargets ¶
func (sys *NotificationSys) RemoveAllRemoteTargets()
RemoveAllRemoteTargets - closes and removes all notification targets.
func (*NotificationSys) RemoveNotification ¶
func (sys *NotificationSys) RemoveNotification(bucketName string)
RemoveNotification - removes all notification configuration for bucket name.
func (*NotificationSys) RemoveRulesMap ¶
func (sys *NotificationSys) RemoveRulesMap(bucketName string, rulesMap event.RulesMap)
RemoveRulesMap - removes rules map for bucket name.
func (*NotificationSys) Send ¶
func (sys *NotificationSys) Send(args eventArgs)
Send - sends event data to all matching targets.
func (*NotificationSys) ServerInfo ¶
func (sys *NotificationSys) ServerInfo() []madmin.ServerProperties
ServerInfo - calls ServerInfo RPC call on all peers.
func (*NotificationSys) ServerUpdate ¶
func (sys *NotificationSys) ServerUpdate(ctx context.Context, u *url.URL, sha256Sum []byte, lrTime time.Time) []NotificationPeerErr
ServerUpdate - updates remote peers.
func (*NotificationSys) SignalService ¶
func (sys *NotificationSys) SignalService(sig serviceSignal) []NotificationPeerErr
SignalService - calls signal service RPC call on all peers.
func (*NotificationSys) StartProfiling ¶
func (sys *NotificationSys) StartProfiling(profiler string) []NotificationPeerErr
StartProfiling - start profiling on remote peers, by initiating a remote RPC.
type ObjReaderFn ¶
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 ¶
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 ¶
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 ¶
type ObjectAlreadyExists GenericError
ObjectAlreadyExists object already exists.
func (ObjectAlreadyExists) Error ¶
func (e ObjectAlreadyExists) Error() string
type ObjectExistsAsDirectory ¶
type ObjectExistsAsDirectory GenericError
ObjectExistsAsDirectory object already exists as a directory.
func (ObjectExistsAsDirectory) Error ¶
func (e ObjectExistsAsDirectory) Error() string
type ObjectInfo ¶
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 ¶
func FromMinioClientObjectInfo(bucket string, oi minio.ObjectInfo) ObjectInfo
FromMinioClientObjectInfo converts minio ObjectInfo to gateway ObjectInfo
func (*ObjectInfo) DecryptedSize ¶
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 ¶
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 ¶
func (o ObjectInfo) GetActualETag(h http.Header) string
GetActualETag - returns the actual etag of the stored object decrypts SSE objects.
func (ObjectInfo) GetActualSize ¶
func (o ObjectInfo) GetActualSize() (int64, error)
GetActualSize - returns the actual size of the stored object
func (*ObjectInfo) GetDecryptedRange ¶
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 ¶
func (o ObjectInfo) IsCacheable() bool
IsCacheable returns if the object should be saved in the cache.
func (ObjectInfo) IsCompressed ¶
func (o ObjectInfo) IsCompressed() bool
IsCompressed returns true if the object is marked as compressed.
func (ObjectInfo) IsCompressedOK ¶
func (o ObjectInfo) IsCompressedOK() (bool, error)
IsCompressedOK returns whether the object is compressed and can be decompressed.
type ObjectLayer ¶
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) (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 ¶
func NewFSObjectLayer(fsPath string) (ObjectLayer, error)
NewFSObjectLayer - initialize new fs object layer.
func NewGatewayLayerWithLocker ¶
func NewGatewayLayerWithLocker(gwLayer ObjectLayer) ObjectLayer
NewGatewayLayerWithLocker - initialize gateway with locker.
type ObjectNameInvalid ¶
type ObjectNameInvalid GenericError
ObjectNameInvalid - object name provided is invalid.
func (ObjectNameInvalid) Error ¶
func (e ObjectNameInvalid) Error() string
Error returns string an error formatted as the given text.
type ObjectNamePrefixAsSlash ¶
type ObjectNamePrefixAsSlash GenericError
ObjectNamePrefixAsSlash - object name has a slash as prefix.
func (ObjectNamePrefixAsSlash) Error ¶
func (e ObjectNamePrefixAsSlash) Error() string
Error returns string an error formatted as the given text.
type ObjectNameTooLong ¶
type ObjectNameTooLong GenericError
ObjectNameTooLong - object name too long.
func (ObjectNameTooLong) Error ¶
func (e ObjectNameTooLong) Error() string
Error returns string an error formatted as the given text.
type ObjectNotFound ¶
type ObjectNotFound GenericError
ObjectNotFound object does not exist.
func (ObjectNotFound) Error ¶
func (e ObjectNotFound) Error() string
type ObjectOptions ¶
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. ProxyRequest bool // only set for GET/HEAD in active-active replication scenario }
ObjectOptions represents object options for ObjectLayer object operations
type ObjectPartInfo ¶
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 ¶
func (z *ObjectPartInfo) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (*ObjectPartInfo) EncodeMsg ¶
func (z *ObjectPartInfo) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (*ObjectPartInfo) MarshalMsg ¶
func (z *ObjectPartInfo) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (*ObjectPartInfo) Msgsize ¶
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 ¶
func (z *ObjectPartInfo) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type ObjectToDelete ¶
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 ¶
type ObjectTooLarge GenericError
ObjectTooLarge error returned when the size of the object > max object size allowed (5G) per request.
func (ObjectTooLarge) Error ¶
func (e ObjectTooLarge) Error() string
type ObjectTooSmall ¶
type ObjectTooSmall GenericError
ObjectTooSmall error returned when the size of the object < what is expected.
func (ObjectTooSmall) Error ¶
func (e ObjectTooSmall) Error() string
type ObjectVersion ¶
type ObjectVersion struct { Object IsLatest bool VersionID string `xml:"VersionId"` // contains filtered or unexported fields }
ObjectVersion container for object version metadata
func (ObjectVersion) MarshalXML ¶
func (o ObjectVersion) MarshalXML(e *xml.Encoder, start xml.StartElement) error
MarshalXML - marshal ObjectVersion
type OperationTimedOut ¶
type OperationTimedOut struct { }
OperationTimedOut - a timeout occurred.
func (OperationTimedOut) Error ¶
func (e OperationTimedOut) Error() string
type OutputLocation ¶
type OutputLocation struct {
S3 S3Location `xml:"S3,omitempty"`
}
OutputLocation specifies bucket where object needs to be restored
func (*OutputLocation) IsEmpty ¶
func (o *OutputLocation) IsEmpty() bool
IsEmpty returns true if output location not specified.
type ParentIsObject ¶
type ParentIsObject GenericError
ParentIsObject object access is denied.
func (ParentIsObject) Error ¶
func (e ParentIsObject) Error() string
type PartInfo ¶
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 ¶
func FromMinioClientObjectPart(op minio.ObjectPart) PartInfo
FromMinioClientObjectPart converts minio ObjectPart to PartInfo
type PartTooBig ¶
type PartTooBig struct{}
PartTooBig returned if size of part is bigger than the allowed limit.
func (PartTooBig) Error ¶
func (e PartTooBig) Error() string
type PartTooSmall ¶
PartTooSmall - error if part size is less than 5MB.
func (PartTooSmall) Error ¶
func (e PartTooSmall) Error() string
type PolicySys ¶
type PolicySys struct{}
PolicySys - policy subsystem.
type PostPolicyForm ¶
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 ¶
PostResponse container for POST object request when success_action_status is set to 201
type PreConditionFailed ¶
type PreConditionFailed struct{}
PreConditionFailed - Check if copy precondition failed
func (PreConditionFailed) Error ¶
func (e PreConditionFailed) Error() string
type PrefixAccessDenied ¶
type PrefixAccessDenied GenericError
PrefixAccessDenied object access is denied.
func (PrefixAccessDenied) Error ¶
func (e PrefixAccessDenied) Error() string
type PresignedGetArgs ¶
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 ¶
func (args *PresignedGetArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for PresignedGetArgs
type PresignedGetRep ¶
type PresignedGetRep struct { UIVersion string `json:"uiVersion"` // Presigned URL of the object. URL string `json:"url"` }
PresignedGetRep - presigned-get URL reply.
type ProxyEndpoint ¶
type ProxyEndpoint struct { Endpoint Transport http.RoundTripper }
ProxyEndpoint - endpoint used for proxy redirects See proxyRequest() for details.
func GetProxyEndpoints ¶
func GetProxyEndpoints(endpointServerPools EndpointServerPools) []ProxyEndpoint
GetProxyEndpoints - get all endpoints that can be used to proxy list request.
type PutObjReader ¶
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 ¶
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 ¶
func (p *PutObjReader) MD5CurrentHexString() string
MD5CurrentHexString returns the current MD5Sum or encrypted MD5Sum as a hex encoded string
func (*PutObjReader) Size ¶
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 ¶
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 RemoveBucketArgs ¶
type RemoveBucketArgs struct {
BucketName string `json:"bucketName"`
}
RemoveBucketArgs - remove bucket args.
func (*RemoveBucketArgs) ToKeyValue ¶
func (args *RemoveBucketArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for RemoveBucketArgs
type RemoveObjectArgs ¶
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 ¶
func (args *RemoveObjectArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for RemoveObjectArgs
type RequestStats ¶
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 ¶
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 ¶
type RestoreRequestType string
RestoreRequestType represents type of restore.
const ( // SelectRestoreRequest specifies select request. This is the only valid value SelectRestoreRequest RestoreRequestType = "SELECT" )
type S3Location ¶
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 STSErrorCode ¶
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 ¶
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 ¶
SealMD5CurrFn seals md5sum with object encryption key and returns sealed md5sum
type SelectParameters ¶
SelectParameters specifies sql select parameters
func (*SelectParameters) IsEmpty ¶
func (sp *SelectParameters) IsEmpty() bool
IsEmpty returns true if no select parameters set
func (*SelectParameters) UnmarshalXML ¶
func (sp *SelectParameters) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
UnmarshalXML - decodes XML data.
type ServerConnStats ¶
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 ¶
ServerHTTPAPIStats holds total number of HTTP operations from/to the server, including the average duration the call was spent.
type ServerHTTPStats ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
type ServerSystemConfig struct { MinioPlatform string MinioRuntime string MinioEndpoints EndpointServerPools }
ServerSystemConfig - captures information about server configuration.
func (ServerSystemConfig) Diff ¶
func (s1 ServerSystemConfig) Diff(s2 ServerSystemConfig) error
Diff - returns error on first difference found in two configs.
type SetAuthArgs ¶
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 ¶
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 ¶
type SetAuthReply struct { Token string `json:"token"` UIVersion string `json:"uiVersion"` PeerErrMsgs map[string]string `json:"peerErrMsgs"` }
SetAuthReply - reply for SetAuth
type SetBucketPolicyWebArgs ¶
type SetBucketPolicyWebArgs struct { BucketName string `json:"bucketName"` Prefix string `json:"prefix"` Policy string `json:"policy"` }
SetBucketPolicyWebArgs - set bucket policy args.
func (*SetBucketPolicyWebArgs) ToKeyValue ¶
func (args *SetBucketPolicyWebArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for SetBucketPolicyWebArgs
type SetupType ¶
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 )
type SignatureDoesNotMatch ¶
type SignatureDoesNotMatch struct{}
SignatureDoesNotMatch - when content md5 does not match with what was sent from client.
func (SignatureDoesNotMatch) Error ¶
func (e SignatureDoesNotMatch) Error() string
type StartProfilingResult ¶
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 ¶
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) MarshalMsg ¶
MarshalMsg implements msgp.Marshaler
type StorageAPI ¶
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, readData 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 ¶
type StorageErr string
StorageErr represents error generated by xlStorage call.
func (StorageErr) Error ¶
func (h StorageErr) Error() string
type StorageFull ¶
type StorageFull struct{}
StorageFull storage ran out of space.
func (StorageFull) Error ¶
func (e StorageFull) Error() string
type StorageInfo ¶
type StorageInfo struct { Disks []madmin.Disk Backend BackendInfo }
StorageInfo - represents total capacity of underlying storage.
type StorageInfoRep ¶
StorageInfoRep - contains storage usage statistics.
type StringMap ¶
StringMap is a map[string]string.
func (StringMap) MarshalXML ¶
MarshalXML - StringMap marshals into XML.
type TargetClient ¶
TargetClient is the struct for remote target client.
type ToKeyValuer ¶
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 ¶
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 ¶
func NewTreeWalkPool(timeout time.Duration) *TreeWalkPool
NewTreeWalkPool - initialize new tree walk pool.
func (*TreeWalkPool) Release ¶
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 ¶
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:
- 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.
- 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 ¶
type TreeWalkResult struct {
// contains filtered or unexported fields
}
TreeWalkResult - Tree walk result carries results of tree walking.
type URLTokenReply ¶
URLTokenReply contains the reply for CreateURLToken.
type UnsupportedDelimiter ¶
type UnsupportedDelimiter struct {
Delimiter string
}
UnsupportedDelimiter - unsupported delimiter.
func (UnsupportedDelimiter) Error ¶
func (e UnsupportedDelimiter) Error() string
type UnsupportedMetadata ¶
type UnsupportedMetadata struct{}
UnsupportedMetadata - unsupported metadata
func (UnsupportedMetadata) Error ¶
func (e UnsupportedMetadata) Error() string
type Upload ¶
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 ¶
type UserIdentity struct { Version int `json:"version"` Credentials auth.Credentials `json:"credentials"` }
UserIdentity represents a user's secret key and their status
type UsersSysType ¶
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 ¶
type VerifyFileResp struct {
Err error
}
VerifyFileResp - VerifyFile()'s response.
type VersionNotFound ¶
type VersionNotFound GenericError
VersionNotFound version does not exist.
func (VersionNotFound) Error ¶
func (e VersionNotFound) Error() string
type VersionPurgeStatusType ¶
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 ¶
func (z *VersionPurgeStatusType) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (VersionPurgeStatusType) Empty ¶
func (v VersionPurgeStatusType) Empty() bool
Empty returns true if purge status was not set.
func (VersionPurgeStatusType) EncodeMsg ¶
func (z VersionPurgeStatusType) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (VersionPurgeStatusType) MarshalMsg ¶
func (z VersionPurgeStatusType) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (VersionPurgeStatusType) Msgsize ¶
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 ¶
func (v VersionPurgeStatusType) Pending() bool
Pending returns true if the version is pending purge.
func (*VersionPurgeStatusType) UnmarshalMsg ¶
func (z *VersionPurgeStatusType) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type VersionType ¶
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 ¶
func (z *VersionType) DecodeMsg(dc *msgp.Reader) (err error)
DecodeMsg implements msgp.Decodable
func (VersionType) EncodeMsg ¶
func (z VersionType) EncodeMsg(en *msgp.Writer) (err error)
EncodeMsg implements msgp.Encodable
func (VersionType) MarshalMsg ¶
func (z VersionType) MarshalMsg(b []byte) (o []byte, err error)
MarshalMsg implements msgp.Marshaler
func (VersionType) Msgsize ¶
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 ¶
func (z *VersionType) UnmarshalMsg(bts []byte) (o []byte, err error)
UnmarshalMsg implements msgp.Unmarshaler
type VolInfo ¶
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. The above means that any added/deleted fields are incompatible.
func (VolInfo) MarshalMsg ¶
MarshalMsg implements msgp.Marshaler
type VolsInfo ¶
type VolsInfo []VolInfo
VolsInfo is a collection of volume(bucket) information
func (VolsInfo) MarshalMsg ¶
MarshalMsg implements msgp.Marshaler
type WalkDirOptions ¶
type WalkDirOptions struct { // Bucket to crawl Bucket string // Directory inside the bucket. BaseDir string // Do a full recursive scan. Recursive bool // ReportNotFound will return errFileNotFound if all disks reports the BaseDir cannot be found. ReportNotFound bool // FilterPrefix will only return results with given prefix within folder. // Should never contain a slash. FilterPrefix string }
WalkDirOptions provides options for WalkDir operations.
type WebBucketInfo ¶
type WebBucketInfo struct { // The name of the bucket. Name string `json:"name"` // Date the bucket was created. CreationDate time.Time `json:"creationDate"` }
WebBucketInfo container for list buckets metadata.
type WebGenericArgs ¶
type WebGenericArgs struct{}
WebGenericArgs - empty struct for calls that don't accept arguments for ex. ServerInfo, GenerateAuth
func (*WebGenericArgs) ToKeyValue ¶
func (args *WebGenericArgs) ToKeyValue() KeyValueMap
ToKeyValue implementation for WebGenericArgs
type WebGenericRep ¶
type WebGenericRep struct {
UIVersion string `json:"uiVersion"`
}
WebGenericRep - reply structure for calls for which reply is success/failure for ex. RemoveObject MakeBucket
type WebIdentityResult ¶
type WebIdentityResult struct { // The identifiers for the temporary security credentials that the operation // returns. AssumedRoleUser AssumedRoleUser `xml:",omitempty"` // The intended audience (also known as client ID) of the web identity token. // This is traditionally the client identifier issued to the application that // requested the client grants. Audience string `xml:",omitempty"` // The temporary security credentials, which include an access key ID, a secret // access key, and a security (or session) token. // // Note: The size of the security token that STS APIs return is not fixed. We // strongly recommend that you make no assumptions about the maximum size. As // of this writing, the typical size is less than 4096 bytes, but that can vary. // Also, future updates to AWS might require larger sizes. Credentials auth.Credentials `xml:",omitempty"` // A percentage value that indicates the size of the policy in packed form. // The service rejects any policy with a packed size greater than 100 percent, // which means the policy exceeded the allowed space. PackedPolicySize int `xml:",omitempty"` // The issuing authority of the web identity token presented. For OpenID Connect // ID tokens, this contains the value of the iss field. For OAuth 2.0 access tokens, // this contains the value of the ProviderId parameter that was passed in the // AssumeRoleWithWebIdentity request. Provider string `xml:",omitempty"` // The unique user identifier that is returned by the identity provider. // This identifier is associated with the Token that was submitted // with the AssumeRoleWithWebIdentity call. The identifier is typically unique to // the user and the application that acquired the WebIdentityToken (pairwise identifier). // For OpenID Connect ID tokens, this field contains the value returned by the identity // provider as the token's sub (Subject) claim. SubjectFromWebIdentityToken string `xml:",omitempty"` }
WebIdentityResult - Contains the response to a successful AssumeRoleWithWebIdentity request, including temporary credentials that can be used to make MinIO API requests.
type WebObjectInfo ¶
type WebObjectInfo struct { // Name of the object Key string `json:"name"` // Date and time the object was last modified. LastModified time.Time `json:"lastModified"` // Size in bytes of the object. Size int64 `json:"size"` // ContentType is mime type of the object. ContentType string `json:"contentType"` }
WebObjectInfo container for list objects metadata.
type ZoneEndpoints ¶
ZoneEndpoints represent endpoints in a given pool along with its setCount and setDriveCount.
Source 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-pool.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
Directories ¶
Path | Synopsis |
---|---|
Package crypto implements AWS S3 related cryptographic building blocks for implementing Server-Side-Encryption (SSE-S3) and Server-Side-Encryption with customer provided keys (SSE-C).
|
Package crypto implements AWS S3 related cryptographic building blocks for implementing Server-Side-Encryption (SSE-S3) and Server-Side-Encryption with customer provided keys (SSE-C). |