Amazon S3 · Capability
Amazon S3 REST API — Multipart Upload
Amazon S3 REST API — Multipart Upload. 4 operations. Lead operation: Amazon S3 Upload Part. Self-contained Naftiko capability covering one Amazon S3 business surface.
What You Can Do
PUT
Uploadpart
— Amazon S3 Upload Part
/v1/{bucket}/{key-partnumber-partnumber-uploadid-uploadid}
POST
Completemultipartupload
— Amazon S3 Complete Multipart Upload
/v1/{bucket}/{key-uploadid-uploadid}
DELETE
Abortmultipartupload
— Amazon S3 Abort Multipart Upload
/v1/{bucket}/{key-uploadid-uploadid}
POST
Createmultipartupload
— Amazon S3 Create Multipart Upload
/v1/{bucket}/key-uploads
MCP Tools
amazon-s3-upload-part
Amazon S3 Upload Part
idempotent
amazon-s3-complete-multipart-upload
Amazon S3 Complete Multipart Upload
amazon-s3-abort-multipart-upload
Amazon S3 Abort Multipart Upload
idempotent
amazon-s3-create-multipart-upload
Amazon S3 Create Multipart Upload
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Amazon S3 REST API — Multipart Upload
description: 'Amazon S3 REST API — Multipart Upload. 4 operations. Lead operation: Amazon S3 Upload Part. Self-contained
Naftiko capability covering one Amazon S3 business surface.'
tags:
- Amazon S3
- Multipart Upload
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
AMAZON_S3_API_KEY: AMAZON_S3_API_KEY
capability:
consumes:
- type: http
namespace: rest-multipart-upload
baseUri: https://s3.{region}.amazonaws.com
description: Amazon S3 REST API — Multipart Upload business capability. Self-contained, no shared references.
resources:
- name: Bucket-Key+}?partNumber={partNumber}&uploadId={uploadId
path: /{Bucket}/{Key+}?partNumber={partNumber}&uploadId={uploadId}
operations:
- name: uploadpart
method: PUT
description: Amazon S3 Upload Part
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: partNumber
in: query
type: integer
description: Part number identifying the part (1 to 10,000).
required: true
- name: uploadId
in: query
type: string
description: Upload ID identifying the multipart upload.
required: true
- name: Content-Length
in: header
type: integer
description: Size of the part in bytes.
- name: Content-MD5
in: header
type: string
description: The base64-encoded 128-bit MD5 digest of the part data.
- name: x-amz-expected-bucket-owner
in: header
type: string
description: The account ID of the expected bucket owner.
- name: x-amz-request-payer
in: header
type: string
description: Confirms that the requester knows they will be charged.
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: Bucket-Key+}?uploadId={uploadId
path: /{Bucket}/{Key+}?uploadId={uploadId}
operations:
- name: completemultipartupload
method: POST
description: Amazon S3 Complete Multipart Upload
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: uploadId
in: query
type: string
description: Upload ID identifying the multipart upload.
required: true
- name: x-amz-expected-bucket-owner
in: header
type: string
description: The account ID of the expected bucket owner.
- name: x-amz-request-payer
in: header
type: string
description: Confirms that the requester knows they will be charged.
- name: x-amz-checksum-crc32
in: header
type: string
description: CRC32 checksum of the object.
- name: x-amz-checksum-crc32c
in: header
type: string
description: CRC32C checksum of the object.
- name: x-amz-checksum-sha1
in: header
type: string
description: SHA-1 digest of the object.
- name: x-amz-checksum-sha256
in: header
type: string
description: SHA-256 digest of the object.
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: abortmultipartupload
method: DELETE
description: Amazon S3 Abort Multipart Upload
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: uploadId
in: query
type: string
description: Upload ID identifying the multipart upload to abort.
required: true
- name: x-amz-expected-bucket-owner
in: header
type: string
description: The account ID of the expected bucket owner.
- name: x-amz-request-payer
in: header
type: string
description: Confirms that the requester knows they will be charged.
- name: Bucket-Key+}?uploads
path: /{Bucket}/{Key+}?uploads
operations:
- name: createmultipartupload
method: POST
description: Amazon S3 Create Multipart Upload
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: Cache-Control
in: header
type: string
description: Specifies caching behavior along the request/reply chain.
- name: Content-Disposition
in: header
type: string
description: Specifies presentational information for the object.
- name: Content-Encoding
in: header
type: string
description: Specifies content encodings applied to the object.
- name: Content-Type
in: header
type: string
description: A standard MIME type describing the format of the object data.
- name: x-amz-acl
in: header
type: string
description: The canned ACL to apply to the object.
- name: x-amz-storage-class
in: header
type: string
description: The storage class for the object.
- name: x-amz-server-side-encryption
in: header
type: string
description: The server-side encryption algorithm.
- name: x-amz-server-side-encryption-aws-kms-key-id
in: header
type: string
description: Specifies the KMS key ID.
- name: x-amz-tagging
in: header
type: string
description: The tag-set for the object.
- name: x-amz-object-lock-mode
in: header
type: string
description: Specifies the Object Lock mode.
- name: x-amz-object-lock-retain-until-date
in: header
type: string
description: Object Lock retention expiry.
- name: x-amz-object-lock-legal-hold
in: header
type: string
description: Specifies whether a legal hold will be applied.
- name: x-amz-expected-bucket-owner
in: header
type: string
description: The account ID of the expected bucket owner.
- name: x-amz-checksum-algorithm
in: header
type: string
description: Algorithm for object checksum.
authentication:
type: apikey
key: Authorization
value: '{{env.AMAZON_S3_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: rest-multipart-upload-rest
port: 8080
description: REST adapter for Amazon S3 REST API — Multipart Upload. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/{bucket}/{key-partnumber-partnumber-uploadid-uploadid}
name: bucket-key-partnumber-partnumber-uploadid-uploadid
description: REST surface for Bucket-Key+}?partNumber={partNumber}&uploadId={uploadId.
operations:
- method: PUT
name: uploadpart
description: Amazon S3 Upload Part
call: rest-multipart-upload.uploadpart
with:
partNumber: rest.partNumber
uploadId: rest.uploadId
Content-Length: rest.Content-Length
Content-MD5: rest.Content-MD5
x-amz-expected-bucket-owner: rest.x-amz-expected-bucket-owner
x-amz-request-payer: rest.x-amz-request-payer
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/{bucket}/{key-uploadid-uploadid}
name: bucket-key-uploadid-uploadid
description: REST surface for Bucket-Key+}?uploadId={uploadId.
operations:
- method: POST
name: completemultipartupload
description: Amazon S3 Complete Multipart Upload
call: rest-multipart-upload.completemultipartupload
with:
uploadId: rest.uploadId
x-amz-expected-bucket-owner: rest.x-amz-expected-bucket-owner
x-amz-request-payer: rest.x-amz-request-payer
x-amz-checksum-crc32: rest.x-amz-checksum-crc32
x-amz-checksum-crc32c: rest.x-amz-checksum-crc32c
x-amz-checksum-sha1: rest.x-amz-checksum-sha1
x-amz-checksum-sha256: rest.x-amz-checksum-sha256
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: abortmultipartupload
description: Amazon S3 Abort Multipart Upload
call: rest-multipart-upload.abortmultipartupload
with:
uploadId: rest.uploadId
x-amz-expected-bucket-owner: rest.x-amz-expected-bucket-owner
x-amz-request-payer: rest.x-amz-request-payer
outputParameters:
- type: object
mapping: $.
- path: /v1/{bucket}/key-uploads
name: bucket-key-uploads
description: REST surface for Bucket-Key+}?uploads.
operations:
- method: POST
name: createmultipartupload
description: Amazon S3 Create Multipart Upload
call: rest-multipart-upload.createmultipartupload
with:
Cache-Control: rest.Cache-Control
Content-Disposition: rest.Content-Disposition
Content-Encoding: rest.Content-Encoding
Content-Type: rest.Content-Type
x-amz-acl: rest.x-amz-acl
x-amz-storage-class: rest.x-amz-storage-class
x-amz-server-side-encryption: rest.x-amz-server-side-encryption
x-amz-server-side-encryption-aws-kms-key-id: rest.x-amz-server-side-encryption-aws-kms-key-id
x-amz-tagging: rest.x-amz-tagging
x-amz-object-lock-mode: rest.x-amz-object-lock-mode
x-amz-object-lock-retain-until-date: rest.x-amz-object-lock-retain-until-date
x-amz-object-lock-legal-hold: rest.x-amz-object-lock-legal-hold
x-amz-expected-bucket-owner: rest.x-amz-expected-bucket-owner
x-amz-checksum-algorithm: rest.x-amz-checksum-algorithm
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: rest-multipart-upload-mcp
port: 9090
transport: http
description: MCP adapter for Amazon S3 REST API — Multipart Upload. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: amazon-s3-upload-part
description: Amazon S3 Upload Part
hints:
readOnly: false
destructive: false
idempotent: true
call: rest-multipart-upload.uploadpart
with:
partNumber: tools.partNumber
uploadId: tools.uploadId
Content-Length: tools.Content-Length
Content-MD5: tools.Content-MD5
x-amz-expected-bucket-owner: tools.x-amz-expected-bucket-owner
x-amz-request-payer: tools.x-amz-request-payer
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: amazon-s3-complete-multipart-upload
description: Amazon S3 Complete Multipart Upload
hints:
readOnly: false
destructive: false
idempotent: false
call: rest-multipart-upload.completemultipartupload
with:
uploadId: tools.uploadId
x-amz-expected-bucket-owner: tools.x-amz-expected-bucket-owner
x-amz-request-payer: tools.x-amz-request-payer
x-amz-checksum-crc32: tools.x-amz-checksum-crc32
x-amz-checksum-crc32c: tools.x-amz-checksum-crc32c
x-amz-checksum-sha1: tools.x-amz-checksum-sha1
x-amz-checksum-sha256: tools.x-amz-checksum-sha256
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: amazon-s3-abort-multipart-upload
description: Amazon S3 Abort Multipart Upload
hints:
readOnly: false
destructive: true
idempotent: true
call: rest-multipart-upload.abortmultipartupload
with:
uploadId: tools.uploadId
x-amz-expected-bucket-owner: tools.x-amz-expected-bucket-owner
x-amz-request-payer: tools.x-amz-request-payer
outputParameters:
- type: object
mapping: $.
- name: amazon-s3-create-multipart-upload
description: Amazon S3 Create Multipart Upload
hints:
readOnly: false
destructive: false
idempotent: false
call: rest-multipart-upload.createmultipartupload
with:
Cache-Control: tools.Cache-Control
Content-Disposition: tools.Content-Disposition
Content-Encoding: tools.Content-Encoding
Content-Type: tools.Content-Type
x-amz-acl: tools.x-amz-acl
x-amz-storage-class: tools.x-amz-storage-class
x-amz-server-side-encryption: tools.x-amz-server-side-encryption
x-amz-server-side-encryption-aws-kms-key-id: tools.x-amz-server-side-encryption-aws-kms-key-id
x-amz-tagging: tools.x-amz-tagging
x-amz-object-lock-mode: tools.x-amz-object-lock-mode
x-amz-object-lock-retain-until-date: tools.x-amz-object-lock-retain-until-date
x-amz-object-lock-legal-hold: tools.x-amz-object-lock-legal-hold
x-amz-expected-bucket-owner: tools.x-amz-expected-bucket-owner
x-amz-checksum-algorithm: tools.x-amz-checksum-algorithm
outputParameters:
- type: object
mapping: $.