import { Command as $Command } from "@smithy/smithy-client"; import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { PutBucketCorsRequest } from "../models/models_0"; import { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link PutBucketCorsCommand}. */ export interface PutBucketCorsCommandInput extends PutBucketCorsRequest { } /** * @public * * The output of {@link PutBucketCorsCommand}. */ export interface PutBucketCorsCommandOutput extends __MetadataBearer { } declare const PutBucketCorsCommand_base: { new (input: PutBucketCorsCommandInput): import("@smithy/smithy-client").CommandImpl; new (__0_0: PutBucketCorsCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** * *

This operation is not supported by directory buckets.

*
*

Sets the cors configuration for your bucket. If the configuration exists, * Amazon S3 replaces it.

*

To use this operation, you must be allowed to perform the s3:PutBucketCORS * action. By default, the bucket owner has this permission and can grant it to others.

*

You set this configuration on a bucket so that the bucket can service cross-origin * requests. For example, you might want to enable a request whose origin is * http://www.example.com to access your Amazon S3 bucket at * my.example.bucket.com by using the browser's XMLHttpRequest * capability.

*

To enable cross-origin resource sharing (CORS) on a bucket, you add the * cors subresource to the bucket. The cors subresource is an XML * document in which you configure rules that identify origins and the HTTP methods that can * be executed on your bucket. The document is limited to 64 KB in size.

*

When Amazon S3 receives a cross-origin request (or a pre-flight OPTIONS request) against a * bucket, it evaluates the cors configuration on the bucket and uses the first * CORSRule rule that matches the incoming browser request to enable a * cross-origin request. For a rule to match, the following conditions must be met:

* *

For more information about CORS, go to Enabling Cross-Origin Resource Sharing in * the Amazon S3 User Guide.

*

The following operations are related to PutBucketCors:

* * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { S3Client, PutBucketCorsCommand } from "@aws-sdk/client-s3"; // ES Modules import * // const { S3Client, PutBucketCorsCommand } = require("@aws-sdk/client-s3"); // CommonJS import * const client = new S3Client(config); * const input = { // PutBucketCorsRequest * Bucket: "STRING_VALUE", // required * CORSConfiguration: { // CORSConfiguration * CORSRules: [ // CORSRules // required * { // CORSRule * ID: "STRING_VALUE", * AllowedHeaders: [ // AllowedHeaders * "STRING_VALUE", * ], * AllowedMethods: [ // AllowedMethods // required * "STRING_VALUE", * ], * AllowedOrigins: [ // AllowedOrigins // required * "STRING_VALUE", * ], * ExposeHeaders: [ // ExposeHeaders * "STRING_VALUE", * ], * MaxAgeSeconds: Number("int"), * }, * ], * }, * ContentMD5: "STRING_VALUE", * ChecksumAlgorithm: "CRC32" || "CRC32C" || "SHA1" || "SHA256", * ExpectedBucketOwner: "STRING_VALUE", * }; * const command = new PutBucketCorsCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param PutBucketCorsCommandInput - {@link PutBucketCorsCommandInput} * @returns {@link PutBucketCorsCommandOutput} * @see {@link PutBucketCorsCommandInput} for command's `input` shape. * @see {@link PutBucketCorsCommandOutput} for command's `response` shape. * @see {@link S3ClientResolvedConfig | config} for S3Client's `config` shape. * * @throws {@link S3ServiceException} *

Base exception class for all service exceptions from S3 service.

* * @public * @example To set cors configuration on a bucket. * ```javascript * // The following example enables PUT, POST, and DELETE requests from www.example.com, and enables GET requests from any domain. * const input = { * "Bucket": "", * "CORSConfiguration": { * "CORSRules": [ * { * "AllowedHeaders": [ * "*" * ], * "AllowedMethods": [ * "PUT", * "POST", * "DELETE" * ], * "AllowedOrigins": [ * "http://www.example.com" * ], * "ExposeHeaders": [ * "x-amz-server-side-encryption" * ], * "MaxAgeSeconds": 3000 * }, * { * "AllowedHeaders": [ * "Authorization" * ], * "AllowedMethods": [ * "GET" * ], * "AllowedOrigins": [ * "*" * ], * "MaxAgeSeconds": 3000 * } * ] * }, * "ContentMD5": "" * }; * const command = new PutBucketCorsCommand(input); * await client.send(command); * // example id: to-set-cors-configuration-on-a-bucket-1483037818805 * ``` * */ export declare class PutBucketCorsCommand extends PutBucketCorsCommand_base { }