PutVectors
Note
Amazon S3 Vectors is in preview release for Amazon S3 and is subject to change.
Adds one or more vectors to a vector index. To specify the vector index, you can either use both the vector bucket name and the vector index name, or use the vector index Amazon Resource Name (ARN).
For more information about limits, see Limitations and restrictions in the Amazon S3 User Guide.
Note
When inserting vector data into your vector index, you must provide the vector data
as float32
(32-bit floating point) values. If you pass higher-precision
values to an AWS SDK, S3 Vectors converts the values to 32-bit floating point before
storing them, and GetVectors
, ListVectors
, and
QueryVectors
operations return the float32 values. Different AWS SDKs
may have different default numeric types, so ensure your vectors are properly formatted
as float32
values regardless of which SDK you're using. For example, in
Python, use numpy.float32
or explicitly cast your values.
- Permissions
-
You must have the
s3vectors:PutVectors
permission to use this operation.
Request Syntax
POST /PutVectors HTTP/1.1
Content-type: application/json
{
"indexArn": "string
",
"indexName": "string
",
"vectorBucketName": "string
",
"vectors": [
{
"data": { ... },
"key": "string
",
"metadata": JSON value
}
]
}
URI Request Parameters
The request does not use any URI parameters.
Request Body
The request accepts the following data in JSON format.
- indexArn
-
The ARN of the vector index where you want to write vectors.
Type: String
Required: No
- indexName
-
The name of the vector index where you want to write vectors.
Type: String
Length Constraints: Minimum length of 3. Maximum length of 63.
Required: No
- vectorBucketName
-
The name of the vector bucket that contains the vector index.
Type: String
Length Constraints: Minimum length of 3. Maximum length of 63.
Required: No
- vectors
-
The vectors to add to a vector index. The number of vectors in a single request must not exceed the resource capacity, otherwise the request will be rejected with the error
ServiceUnavailableException
with the error message "Currently unable to handle the request".Type: Array of PutInputVector objects
Array Members: Minimum number of 1 item. Maximum number of 500 items.
Required: Yes
Response Syntax
HTTP/1.1 200
Response Elements
If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.
Errors
- AccessDeniedException
-
Access denied.
HTTP Status Code: 403
- InternalServerException
-
The request failed due to an internal server error.
HTTP Status Code: 500
- KmsDisabledException
-
The specified AWS KMS key isn't enabled.
HTTP Status Code: 400
- KmsInvalidKeyUsageException
-
The request was rejected for one of the following reasons:
-
The
KeyUsage
value of the KMS key is incompatible with the API operation. -
The encryption algorithm or signing algorithm specified for the operation is incompatible with the type of key material in the KMS key (
KeySpec
).
For more information, see InvalidKeyUsageException in the AWS Key Management Service API Reference.
HTTP Status Code: 400
-
- KmsInvalidStateException
-
The key state of the KMS key isn't compatible with the operation.
For more information, see KMSInvalidStateException in the AWS Key Management Service API Reference.
HTTP Status Code: 400
- KmsNotFoundException
-
The KMS key can't be found.
HTTP Status Code: 400
- NotFoundException
-
The request was rejected because the specified resource can't be found.
HTTP Status Code: 404
- ServiceQuotaExceededException
-
Your request exceeds a service quota.
HTTP Status Code: 402
- ServiceUnavailableException
-
The service is unavailable. Wait briefly and retry your request. If it continues to fail, increase your waiting time between retries.
HTTP Status Code: 503
- TooManyRequestsException
-
The request was denied due to request throttling.
HTTP Status Code: 429
- ValidationException
-
The requested action isn't valid.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: