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

This operation is not supported for directory buckets.

*
*

Sets the configuration of the website that is specified in the website subresource. To * configure a bucket as a website, you can add this subresource on the bucket with website configuration * information such as the file name of the index document and any redirect rules. For more information, * see Hosting Websites on * Amazon S3.

*

This PUT action requires the S3:PutBucketWebsite permission. By default, only the * bucket owner can configure the website attached to a bucket; however, bucket owners can allow other * users to set the website configuration by writing a bucket policy that grants them the * S3:PutBucketWebsite permission.

*

To redirect all website requests sent to the bucket's website endpoint, you add a website * configuration with the following elements. Because all requests are sent to another website, you don't * need to provide index document name for the bucket.

* *

If you want granular control over redirects, you can use the following elements to add routing rules * that describe conditions for redirecting requests and information about the redirect destination. In * this case, the website configuration must provide an index document for the bucket, because some * requests might not be redirected.

* *

Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more than 50 * routing rules, you can use object redirect. For more information, see Configuring an Object Redirect in the * Amazon S3 User Guide.

*

The maximum request length is limited to 128 KB.

* *

You must URL encode any signed header values that contain spaces. For example, if your header value is my file.txt, containing two spaces after my, you must URL encode this value to my%20%20file.txt.

*
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { S3Client, PutBucketWebsiteCommand } from "@aws-sdk/client-s3"; // ES Modules import * // const { S3Client, PutBucketWebsiteCommand } = require("@aws-sdk/client-s3"); // CommonJS import * // import type { S3ClientConfig } from "@aws-sdk/client-s3"; * const config = {}; // type is S3ClientConfig * const client = new S3Client(config); * const input = { // PutBucketWebsiteRequest * Bucket: "STRING_VALUE", // required * ContentMD5: "STRING_VALUE", * ChecksumAlgorithm: "CRC32" || "CRC32C" || "SHA1" || "SHA256" || "CRC64NVME", * WebsiteConfiguration: { // WebsiteConfiguration * ErrorDocument: { // ErrorDocument * Key: "STRING_VALUE", // required * }, * IndexDocument: { // IndexDocument * Suffix: "STRING_VALUE", // required * }, * RedirectAllRequestsTo: { // RedirectAllRequestsTo * HostName: "STRING_VALUE", // required * Protocol: "http" || "https", * }, * RoutingRules: [ // RoutingRules * { // RoutingRule * Condition: { // Condition * HttpErrorCodeReturnedEquals: "STRING_VALUE", * KeyPrefixEquals: "STRING_VALUE", * }, * Redirect: { // Redirect * HostName: "STRING_VALUE", * HttpRedirectCode: "STRING_VALUE", * Protocol: "http" || "https", * ReplaceKeyPrefixWith: "STRING_VALUE", * ReplaceKeyWith: "STRING_VALUE", * }, * }, * ], * }, * ExpectedBucketOwner: "STRING_VALUE", * }; * const command = new PutBucketWebsiteCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param PutBucketWebsiteCommandInput - {@link PutBucketWebsiteCommandInput} * @returns {@link PutBucketWebsiteCommandOutput} * @see {@link PutBucketWebsiteCommandInput} for command's `input` shape. * @see {@link PutBucketWebsiteCommandOutput} 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.

* * * @example Set website configuration on a bucket * ```javascript * // The following example adds website configuration to a bucket. * const input = { * Bucket: "examplebucket", * ContentMD5: "", * WebsiteConfiguration: { * ErrorDocument: { * Key: "error.html" * }, * IndexDocument: { * Suffix: "index.html" * } * } * }; * const command = new PutBucketWebsiteCommand(input); * const response = await client.send(command); * /* response is * { /* metadata only *\/ } * *\/ * ``` * * @public */ export declare class PutBucketWebsiteCommand extends PutBucketWebsiteCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: PutBucketWebsiteRequest; output: {}; }; sdk: { input: PutBucketWebsiteCommandInput; output: PutBucketWebsiteCommandOutput; }; }; }