Skip to main content

ONTAP S3 supported actions

Contributors netapp-lenida netapp-dbagwell netapp-manini netapp-forry netapp-aherbin netapp-mdavidson jani johnlantz netapp-pcarriga netapp-ahibbard

ONTAP S3 actions are supported by standard S3 REST APIs except as indicated below. For details, see the Amazon S3 API Reference.

Note These S3 actions are supported specifically when using native S3 buckets in ONTAP. Some of these actions, such as those associated with versioning, object locks, and other capabilities, are not supported when using S3 NAS buckets (S3 in multiprotocol NAS volumes).

Unless noted for a specific operation, the following common request headers are supported beginning with ONTAP 9.8:

  • Authorization

  • Connection

  • Content-Length

  • Content-MD5

  • Content-Type

  • Date

  • Expect

  • Host

  • x-amz-date

Bucket operations

The following operations are supported in ONTAP using AWS S3 APIs:

Bucket operation ONTAP support beginning with

CreateBucket

ONTAP S3 supports this additional header:

  • x-amz-bucket-object-lock-enabled

ONTAP 9.11.1

DeleteBucket

ONTAP 9.11.1

DeleteBucketCors

ONTAP 9.8

DeleteBucketLifecycle

ONTAP 9.8

DeleteBucketPolicy

ONTAP 9.12.1

GetBucketAcl

ONTAP 9.8

GetBucketCors

ONTAP 9.8

GetBucketLifecycleConfiguration

ONTAP 9.13.1

*Only expiration actions are supported

GetBucketLocation

ONTAP 9.10.1

GetBucketPolicy

ONTAP 9.12.1

GetBucketVersioning

ONTAP 9.11.1

HeadBucket

ONTAP 9.8

ListAllMyBuckets

ONTAP 9.8

ListBuckets

ONTAP 9.8

ListBucketVersions

ONTAP 9.11.1

PutBucket

  • ONTAP 9.11.1

  • ONTAP 9.8 - supported with ONTAP REST APIs only

PutBucketCors

ONTAP 9.8

PutBucketLifecycleConfiguration

ONTAP 9.13.1

* only expiration actions are supported

PutBucketPolicy

ONTAP 9.12.1

PutBucketVersioning

ONTAP 9.11.1

Object operations

Beginning with ONTAP 9.19.1, ONTAP S3 supports enforcement of conditional writes for object uploads and conditional deletes for object deletes. Conditional writes and deletes provide a way to prevent overwrites or unintended deletes of objects. Conditional operations work only if the request is made using AWS_V4 signing method over a TLS connection. The following conditional headers and object operations are supported:

Object operation Conditional header

PutObject

CopyObject

CompleteMultipartUpload

If-None-Match

If-Match

DeleteObject

DeleteObjects

If-Match

Beginning with ONTAP 9.9.1, ONTAP S3 supports object metadata and tagging.

  • PutObject and CreateMultipartUpload include key-value pairs using x-amz-meta-<key>.

    For example: x-amz-meta-project: ontap_s3.

  • GetObject and HeadObject return user-defined metadata.

  • Unlike metadata, tags can be read independently of objects using:

    • PutObjectTagging

    • GetObjectTagging

    • DeleteObjectTagging

Beginning with ONTAP 9.11.1, ONTAP S3 supports object versioning and associated actions with these ONTAP APIs:

  • GetBucketVersioning

  • ListBucketVersions

  • PutBucketVersioning

Unless noted for a specific operation, the following URI query parameters is supported:

  • versionId (as required for object operations beginning with ONTAP 9.12.1)

Object operation ONTAP support beginning with

AbortMultipartUpload

ONTAP S3 supports this additional URI query parameter: uploadId

ONTAP 9.8

CompleteMultipartUpload

ONTAP S3 supports this additional URI query parameter: uploadId

ONTAP 9.8

CopyObject

ONTAP S3 supports these additional headers:

  • 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-object-lock-mode

  • x-amz-object-lock-retain-until-date

  • x-amz-tagging

  • x-amz-tagging-directive

  • x-amz-meta-<metadata-name>

ONTAP 9.12.1

CreateMultipartUpload

ONTAP S3 supports these additional headers:

  • Cache-Control

  • Content-Disposition

  • Content-Encoding

  • Content-Language

  • Expires

  • x-amz-tagging

  • x-amz-object-lock-mode

  • x-amz-object-lock-retain-until-date

  • x-amz-meta-<metadata-name>

ONTAP 9.8

DeleteObject

ONTAP S3 supports this additional header:

  • x-amz-bypass-governance-retention

ONTAP 9.8

DeleteObjects

ONTAP S3 supports this additional header:

* x-amz-bypass-governance-retention

ONTAP 9.11.1

DeleteObjectTagging

ONTAP 9.9.1

GetObject

ONTAP S3 supports these additional URI query parameters:

  • partNumber

  • response-cache-control

  • response-content-disposition

  • response-content-encoding

  • response-content-language

  • response-content-type

  • response-expires

And this additional request header:

  • Range

ONTAP 9.8

GetObjectAcl

ONTAP 9.8

GetObjectAttributes

ONTAP S3 supports this additional header:

  • x-amz-object-attributes

ONTAP 9.17.1

GetObjectRetention

ONTAP 9.14.1

GetObjectTagging

ONTAP 9.9.1

HeadObject

ONTAP 9.8

ListMultipartUploads

ONTAP S3 supports these additional URI parameters:

  • delimiter

  • key-marker

  • max-uploads

  • prefix

  • upload-id-marker

ONTAP 9.8

ListObjects

ONTAP S3 supports these additional URI parameters:

  • delimiter

  • encoding-type

  • marker

  • max-keys

  • prefix

ONTAP 9.8

ListObjectsV2

ONTAP S3 supports these additional URI parameters:

  • continuation-token

  • delimiter

  • encoding-type

  • fetch-owner

  • max-keys

  • prefix

  • start-after

ONTAP 9.8

ListObjectVersions

ONTAP S3 supports these additional URI parameters:

  • delimiter

  • encoding-type

  • key-marker

  • max-keys

  • prefix

  • version-id-marker

ONTAP 9.11.1

ListParts

ONTAP S3 supports these additional URI parameters:

  • max-parts

  • part-number-marker

  • uploadId

ONTAP 9.8

PutObject

ONTAP S3 supports these additional headers:

  • Cache-Control

  • Content-Disposition

  • Content-Encoding

  • Content-Language

  • Expires

  • x-amz-tagging

  • x-amz-object-lock-mode

  • x-amz-object-lock-retain-until-date

  • x-amz-meta-<metadata-name>

ONTAP 9.8

PutObjectLockConfiguration

ONTAP 9.14.1

PutObjectRetention

ONTAP S3 supports this additional header:

  • x-amz-bypass-governance-retention

ONTAP 9.14.1

PutObjectTagging

ONTAP 9.9.1

UploadPart

ONTAP 9.8

UploadPartCopy

ONTAP S3 supports these additional URI parameters:

  • partNumber

  • uploadId

And these additional request headers:

  • 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-copy-source-range

ONTAP 9.12.1

Group policies

These operations are not specific to S3 and are generally associated with Identity and Management (IAM) processes. ONTAP supports these commands but does not use the IAM REST APIs.

  • Create Policy

  • AttachGroup Policy

User management

These operations are not specific to S3 and are generally associated with IAM processes.

  • CreateUser

  • DeleteUser

  • CreateGroup

  • DeleteGroup

S3 actions by release

ONTAP 9.14.1

ONTAP 9.14.1 adds support for S3 Object Lock.

Note Legal hold operations (locks without defined retention times) are not supported.
  • GetObjectLockConfiguration

  • GetObjectRetention

  • PutObjectLockConfiguration

  • PutObjectRetention

ONTAP 9.13.1

ONTAP 9.13.1 adds support for bucket lifecycle management.

  • DeleteBucketLifecycleConfiguration

  • GetBucketLifecycleConfiguration

  • PutBucketLifecycleConfiguration

ONTAP 9.12.1

ONTAP 9.12.1 adds support for bucket policies and the ability to copy objects.

  • DeleteBucketPolicy

  • GetBucketPolicy

  • PutBucketPolicy

  • CopyObject

  • UploadPartCopy

ONTAP 9.11.1

ONTAP 9.11.1 adds support for versioning, presigned URLs, chunked uploads, and support for common S3 actions such as creating and deleting buckets using S3 APIs.

  • ONTAP S3 adds support for chunked uploads signing requests using x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD

  • ONTAP S3 now supports client applications using presigned URLs to share objects or allow other users to upload objects without requiring user credentials.

  • CreateBucket

  • DeleteBucket

  • GetBucketVersioning

  • ListBucketVersions

  • PutBucket

  • PutBucketVersioning

  • DeleteObjects

  • ListObjectVersions

Note Because the underlying FlexGroup is not created until the first bucket is, a bucket must first be created in ONTAP before an external client can create a bucket using CreateBucket.
ONTAP 9.10.1

ONTAP 9.10.1 adds support for SnapMirror S3 and GetBucketLocation.

  • GetBucketLocation

ONTAP 9.9.1

ONTAP 9.9.1 adds support for object metadata and tagging support to ONTAP S3.

  • PutObject and CreateMultipartUpload now include key-value pairs using x-amz-meta-<key>. For example: x-amz-meta-project: ontap_s3.

  • GetObject and HeadObject now return user-defined metadata.

Tags can also be used with buckets. Unlike metadata, tags can be read independently of objects using:

  • PutObjectTagging

  • GetObjectTagging

  • DeleteObjectTagging