Supported S3 APIs

Lists the Amazon S3-compatible APIs that HPE Data Fabric Object Store supports.

The following table lists the S3-compatible APIs and their parameters that HPE Data Fabric Object Store supports.

API Supported URI Request Parameters Supported Request Body Parameters Supported Response Elements
AbortMultipartUpload
  • Bucket
  • Key
  • UploadID
None None
CompleteMultipartUpload
  • Bucket
  • Key
  • UploadID
  • CompleteMultipartUpload
  • Part
  • x-amz-version-id
  • CompleteMultipartUploadResult
  • Bucket
  • ETag
  • Key
  • Location
CopyObject
  • Bucket
  • Content-Type
  • Key
  • x-amz-copy-source
  • x-amz-copy-source-if-match
  • x-amz-copy-source-if-modified-since
  • x-amz-copy-source-if-none-match
  • x-amz-copy-source-if-unmodified-since
  • x-amz-metadata-directive
  • x-amz-tagging
  • x-amz-tagging-directive
  • x-amz-website-redirect-location
None
  • x-amz-copy-source-version-id
  • x-amz-version-id
  • CopyObjectResult
  • ETag
  • LastModified
CreateBucket
  • Bucket
  • x-amz-bucket-object-lock-enabled
None Location
CreateMultipartUpload
  • Bucket
  • Content-Type
  • Key
  • x-amz-object-lock-legal-hold
  • x-amz-object-lock-mode
  • x-amz-object-lock-retain-until-date
  • x-amz-tagging
  • x-amz-website-redirect-location
None
  • InitiateMultipartUploadResult
  • Bucket
  • Key
  • UploadID
DeleteBucket Bucket None None
DeleteBucketCors
  • Bucket
  • x-amz-expected-bucket-owner

None If successful, the service returns an HTTP response with an empty body.
DeleteBucketEncryption Bucket None None
DeleteBucketOwnershipControls Bucket None None
DeleteBucketPolicy Bucket None None
DeleteBucketTagging Bucket None None
DeleteObject
  • Bucket
  • Key
  • versionId
None
  • x-amz-delete-marker
  • x-amz-version-id
DeleteObjects Bucket
  • Delete
  • Object
  • Quiet
  • DeleteResult
  • Deleted
  • Error
DeleteObjectTagging
  • Bucket
  • Key
  • versionId
None x-amz-version-id
GetBucketCors
  • Bucket
  • x-amz-expected-bucket-owner

None
  • CORSConfiguration
  • CORSRule
GetBucketPolicy
  • Bucket
Policy (in JSON format) If successful, the service returns an HTTP response with the policy in JSON format.
GetObject
  • Bucket
  • If-Match
  • If-Modified-Since
  • If-None-Match
  • If-Unmodified-Since
  • Key
  • Range
  • response-content-type
  • versionId
None
  • accept-ranges
  • Content-Length
  • Content-Range
  • Content-Type
  • ETag
  • Last-Modified
  • x-amz-delete-marker
  • x-amz-tagging-count
  • x-amz-version-id
GetObjectLegalHold
  • Bucket
  • Key
  • versionId
None
  • LegalHold
  • Status
GetObjectLockConfiguration Bucket None
  • ObjectLockConfiguration
  • ObjectLock Enabled
GetObjectRetention
  • Bucket
  • Key
  • versionId
None
  • RetentionMode
  • RetainUntilDate
GetObjectTagging
  • Bucket
  • Key
  • versionId
None
  • x-amz-version-id
  • Tagging
  • TagSet
HeadBucket Bucket None None
HeadObject
  • Bucket
  • If-Match
  • If-Modified-Since
  • If-None-Match
  • If-Unmodified-Since
  • Key
None
  • accept-ranges
  • Content-Length
  • Content-Type
  • ETag
  • Last-Modified
  • x-amz-delete-marker
  • x-amz-version-id
ListBuckets None None
  • ListAllMyBucketsResult
  • Buckets
ListMultipartUploads Bucket None
  • ListMultipartUploadsResult
  • Bucket
  • IsTruncated
  • MaxUploads
  • UploadID
ListObjects
  • Bucket
  • delimiter
  • marker
  • max-keys
  • prefix
None
  • ListBucketResult
  • CommonPrefixes
  • Contents
  • Delimiter
  • IsTruncated
  • Marker
  • MaxKeys
  • Name
  • NextMarker
  • Prefix
ListObjectsV2
  • Bucket
  • delimiter
  • max-keys
  • prefix
  • start-after
None
  • ListBucketResult
  • CommonPrefixes
  • Contents
  • Delimiter
  • IsTruncated
  • KeyCount
  • MaxKeys
  • Name
  • Prefix
  • StartAfter
ListObjectVersions
  • Bucket
None
  • ListVersionsResult
  • CommonPrefixes
  • Delimiter
  • IsTruncated
  • KeyMarker
  • MaxKeys
  • NextVersionIdMarker
  • Prefix
  • Version
  • VersionIdMarker
ListParts
  • Bucket
  • Key
  • max-parts
  • part-number-market
  • UploadID
None
  • ListPartsResult
  • Bucket
  • Initiator
  • IsTruncated
  • Key
  • MaxParts
  • NextPartNumberMarker
  • Owner
  • Part
  • PartNumberMarker
  • StorageClass
  • UploadID
PutBucketCors
  • Bucket
  • Content-MD5
  • x-amz-expected-bucket-owner

  • x-amz-sdk-checksum-algorithm

  • CORSConfiguration
  • CORSRule
If successful, the service returns an HTTP response with an empty body.
PutBucketEncryption This API is not supported at present. Not applicable Not applicable
PutBucketLifecycleConfiguration This API is not supported at present. Not applicable Not applicable
PutBucketOwnershipControls This API is not supported at present. Not applicable Not applicable
PutBucketPolicy
  • Bucket
Policy (in JSON format) If successful, the service returns an HTTP response with an empty body.
PutBucketTagging
  • Bucket
  • Content-MD5
  • Tagging
  • TagSet
None
PutBucketVersioning
  • Bucket
  • Content-MD5
  • VersioningConfiguration
  • Status
None
PutObject
  • Bucket
  • Content-Length
  • Content-MD5
  • Content-Type
  • Key
  • x-amz-object-lock-mode
  • x-amz-object-lock-retain-until-date
  • x-amz-tagging
  • x-amz-website-redirect-location
Body
  • Etag
  • x-amz-version-id
PutObjectLegalHold
  • Bucket
  • Key
  • versionId
  • LegalHold
  • Status
None
PutObjectLockConfiguration Bucket
  • ObjectLockConfiguration
  • ObjectLockEnabled Rule
None
PutObjectRetention
  • Bucket
  • Key
  • versionId
  • Retention
  • Mode
  • RetainUntilDate
None
PutObjectTagging
  • Bucket
  • Content-MD5
  • Key
  • versionId
  • Tagging
  • TagSet
x-amz-version-id
SelectObjectContent
  • Bucket
  • Key
  • SelectObjectContentRequest
  • Expression
  • ExpressionType
  • InputSerialization
  • OutputSerialization
  • RequestProgress
  • ScanRange
  • End
  • Records
  • Stats
UploadPart
  • Bucket
  • Key
  • partNumber
  • UploadID
Body None
UploadPartCopy
  • Bucket
  • Key
  • partNumber
  • UploadID
  • x-amz-copy-source
None
  • CopyPartResult
  • ETag
  • LastModified
S3 API Fully Supported Not Supported Partially Supported Map-R backed Additional Information
Buckets: CRUD
Create Bucket True False False Yes PutBucketHandler bucket-handlers.go:791 -> objectAPI.MakeBucketWithLocation (MapRObjectLayer)
Head Bucket True False False Yes HeadBucketHandler bucket-handlers.go:1678 -> GetBucketInfo -> BucketManager (CLDB/SAL)
Delete Bucket True False False Yes DeleteBucketHandler bucket-handlers.go:1732 -> objectAPI.DeleteBucket
ListBuckets True False False Yes ListBucketsHandler bucket-handlers.go:348 -> objectAPI.ListBuckets
Bucket Configuration: Versioning
GetBucketVersioning False False False Yes GetBucketVersioningHandler bucket-versioning-handler.go:140 -> GetBucketInfo.VersionState (sheet marks unsupported; code reads MapR metadata)
PutBucketVersioning True False False Yes PutBucketVersioningHandler bucket-versioning-handler.go:43 -> objectAPI.ModifyBucket
Bucket configuration: LifeCycle
GetBucketLifecycle True False False Yes GetBucketLifecycleHandler bucket-lifecycle-handlers.go:124 -> GetBucketLifecycleConfig
GetBucketLifecycleConfiguration True False False Yes Same handler as GetBucketLifecycle (bucket-lifecycle-handlers.go:124)
PutBucketLifecycle True False False Yes PutBucketLifecycleHandler bucket-lifecycle-handlers.go:39 -> SetBucketLifecycle
PutBucketLifecycleConfiguration True False False Yes Same handler as PutBucketLifecycle (bucket-lifecycle-handlers.go:39)
DeleteBucketLifecycle True False False Yes DeleteBucketLifecycleHandler bucket-lifecycle-handlers.go:190
Bucket Configuration: Replication
GetBucketReplication False True False No GetBucketReplicationConfigHandler bucket-handlers.go:2321 reads metadata but MOSS is not erasure; replication path erasure-gated
PutBucketReplication False True False No PutBucketReplicationConfigHandler bucket-handlers.go:2232 returns ErrNotImplemented when !globalIsErasure (2267)
DeleteBucketReplication False True False No DeleteBucketReplicationConfigHandler bucket-handlers.go:2389 (erasure-gated)
Bucket Configuration: Logging
GetBucketLogging False True False Dummy GetBucketLoggingHandler dummy-handlers.go:177 returns canned empty XML (router: 'dummy call')
PutBucketLogging False True False No no PutBucketLogging handler/route registered
Bucket Configuration: Website Hosting
GetBucketWebsite False True False Dummy GetBucketWebsiteHandler dummy-handlers.go:34 returns ErrNoSuchWebsiteConfiguration
PutBucketWebsite False True False No no PutBucketWebsite handler/route registered
DeleteBucketWebsite False True False Dummy DeleteBucketWebsiteHandler dummy-handlers.go:225 flushes success, no storage operations.
Bucket Configuration: Location
GetBucketLocation True False False Yes GetBucketLocationHandler bucket-handlers.go:188 -> GetBucketInfo -> BucketManager (region from globalServerRegion)
Bucket Security: ACL
GetBucketAcl False True False Dummy GetBucketACLHandler acl-handlers.go:121 returns hardcoded FULL_CONTROL (router: 'dummy call')
PutBucketAcl False True False Dummy PutBucketACLHandler acl-handlers.go:38 accepts only 'private' canned ACL, else it is Not Implemented
Bucket Security: Bucket policies
GetBucketPolicy True False False Yes GetBucketPolicyHandler bucket-policy-handlers.go:182 -> objectAPI.GetBucketPolicy
PutBucketPolicy True False False Yes PutBucketPolicyHandler bucket-policy-handlers.go:41 -> objectAPI.SetBucketPolicy
DeleteBucketPolicy True False False Yes DeleteBucketPolicyHandler bucket-policy-handlers.go:121 -> objectAPI.DeleteBucketPolicy
GetBucketPolicyStatus False False False No no GetBucketPolicyStatus handler/route registered
Bucket Security: CORS
PutBucketCors True False False Yes PutBucketCorsHandler bucket-handlers.go:2446 -> objectAPI.SetBucketCors
GetBucketCors True False False Yes GetBucketCorsHandler bucket-handlers.go:2558 -> objectAPI.GetBucketCors
DeleteBucketCors True False False Yes DeleteBucketCorsHandler bucket-handlers.go:2509 -> objectAPI.DeleteBucketCors
Bucket Policies: Encryption
GetBucketEncryption False True False No GetBucketEncryptionHandler bucket-encryption-handlers.go:122 NotImplemented unless objAPI.IsEncryptionSupported()
PutBucketEncryption False True False No PutBucketEncryptionHandler bucket-encryption-handlers.go:38 (encryption-support gated)
DeleteBucketEncryption False True False No DeleteBucketEncryptionHandler bucket-encryption-handlers.go:183 (gated)
Bucket Tags: Tags
GetBucketTagging False False False Yes GetBucketTaggingHandler bucket-handlers.go:2102 -> GetBucketInfo.Tags (sheet blank; code reads MapR metadata)
PutBucketTagging False True False Yes PutBucketTaggingHandler bucket-handlers.go:2032 -> objectAPI.ModifyBucket (DIFFERS from sheet 'Not Supported')
DeleteBucketTagging False True False Yes DeleteBucketTaggingHandler bucket-handlers.go:2174 -> ModifyBucket (DIFFERS from sheet 'Not Supported')
Bucket Notifications: Notifications
GetBucketNotification False False False MapR-backed (cond.) GetBucketNotificationHandler bucket-notification-handlers.go:40 -> GetBucketInfo.EventConfig; gated on IsNotificationSupported
GetBucketNotificationConfiguration False False False MapR-backed (cond.) Same handler as GetBucketNotification
PutBucketNotification False False False MapR-backed (cond.) PutBucketNotificationHandler bucket-notification-handlers.go:138 -> ModifyBucket; gated on IsNotificationSupported
PutBucketNotificationConfiguration False False False MapR-backed (cond.) Same handler as PutBucketNotification
Objects: CRUD
PutObject True False False Yes PutObjectHandler object-handlers.go:1807 -> MapRObjectLayer.PutObject -> ObjectManager.putObjectInternal (SAL)
GetObject True False False Yes GetObjectHandler object-handlers.go:347 -> MapRObjectLayer.GetObject -> ObjectManager (SAL)
HeadObject True False False Yes HeadObjectHandler object-handlers.go:620 -> GetObjectInfo -> ObjectManager
DeleteObject True False False Yes DeleteObjectHandler object-handlers.go:3508 -> MapRObjectLayer.DeleteObject -> ObjectManager
CopyObject True False False Yes CopyObjectHandler object-handlers.go:1076 -> MapRObjectLayer.CopyObject -> ObjectManager
RenameObject False False False No no RenameObject handler/route in api-router.go
Objects: Listing
ListObjects True False False Yes ListObjectsV1Handler bucket-listobjects-handlers.go:494 -> ListObjects -> ObjectManager
ListObjectsV2 True False False Yes ListObjectsV2Handler bucket-listobjects-handlers.go:256 -> ListObjectsV2 -> ObjectManager
ListObjectVersions True False False Yes ListObjectVersionsHandler bucket-listobjects-handlers.go:78 -> ObjectManager.ListObjects(versioned)
Objects: Metadata and Attributes
GetObjectAttributes False False False No no GetObjectAttributes handler/route
UpdateObjectEncryption False False False No no UpdateObjectEncryption handler/route
Objects; ACL
GetObjectAcl False False False Dummy GetObjectACLHandler acl-handlers.go:290 returns synthetic FULL_CONTROL (router: 'dummy call')
PutObjectAcl False False False Dummy PutObjectACLHandler acl-handlers.go:198 accepts only 'private', no persistence
Objects: Tags
GetObjectTagging True False False Yes GetObjectTaggingHandler object-handlers.go:4161 -> ObjectManager.GetObjectTags (tags.go:74)
PutObjectTagging True False False Yes PutObjectTaggingHandler object-handlers.go:4251 -> ObjectManager.PutObjectTags (tags.go:12)
DeleteObjectTagging True False False Yes DeleteObjectTaggingHandler object-handlers.go:4348 -> ObjectManager.DeleteObjectTags (tags.go:84)
Objects Locks and Complaince: Object Lock
GetObjectLockConfiguration True False False Yes GetBucketObjectLockConfigHandler bucket-handlers.go:1961 -> GetBucketInfo.LockConfig
PutObjectLockConfiguration True False False Yes PutBucketObjectLockConfigHandler bucket-handlers.go:1857 -> ModifyBucket(lock/retention)
Object Lock and Compliance: Legal Hold
GetObjectLegalHold True False False Yes GetObjectLegalHoldHandler object-handlers.go:3840 -> GetObjectInfo UserDefined legal-hold
PutObjectLegalHold True False False Yes PutObjectLegalHoldHandler object-handlers.go:3714 -> CopyObject metadata update (WORM)
Object Lock and Compliance: Retention
GetObjectRetention True False False Yes GetObjectRetentionHandler object-handlers.go:4073 -> GetObjectInfo UserDefined retention
PutObjectRetention True False False Yes PutObjectRetentionHandler object-handlers.go:3934 -> CopyObject metadata update (WORM enforced)
Object Lock and Compliance: Restore and Archive
RestoreObject False False False Partial PostRestoreObjectHandler object-handlers.go:4456 tracks restore state via object metadata (CopyObject); no real archive tier
Multiport Uploads : Upload LifeCycle
CreateMultipartUpload True False False Yes NewMultipartUploadHandler object-handlers.go:2159 -> ObjectManager multipartput.go:30 (SAL CreateDangling + OLT)
UploadPart True False False Yes PutObjectPartHandler object-handlers.go:2766 -> multipartput.go:246
UploadPartCopy True False False Yes CopyObjectPartHandler object-handlers.go:2319 -> PutObjectPart (multipartput.go:246)
CompleteMultipartUpload True False False Yes CompleteMultipartUploadHandler object-handlers.go:3286 -> multipartput.go:584 (OLT update)
AbortMultipartUpload True False False Yes AbortMultipartUploadHandler object-handlers.go:3051 -> multipartput.go:445 (PurgeParts)
Multiport Uploads : Inspection
ListMultipartUploads True False False Yes ListMultipartUploadsHandler bucket-handlers.go:266 -> multipartput.go:135 (OLT scan)
ListParts True False False Yes ListObjectPartsHandler object-handlers.go:3120 -> multipartput.go:293 (OLT scan)
Additional APIs
DeleteBucketOwnershipControls No no DeleteBucketOwnershipControls handler/route
PutBucketOwnershipControls No no PutBucketOwnershipControls; only PublicAccessBlock (PutPublicAccessBlock bucket-handlers.go:1135 -> ModifyBucket) is MapR-backed
SelectObjectContent Yes SelectObjectContentHandler object-handlers.go:108 -> s3select over ObjectManager.GetObject data