PutBucketWebsiteCommand

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.

  • WebsiteConfiguration

  • RedirectAllRequestsTo

  • HostName

  • Protocol

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.

  • WebsiteConfiguration

  • IndexDocument

  • Suffix

  • ErrorDocument

  • Key

  • RoutingRules

  • RoutingRule

  • Condition

  • HttpErrorCodeReturnedEquals

  • KeyPrefixEquals

  • Redirect

  • Protocol

  • HostName

  • ReplaceKeyPrefixWith

  • ReplaceKeyWith

  • HttpRedirectCode

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.

Example Syntax

Use a bare-bones client and the command you need to make an API call.

import { S3Client, PutBucketWebsiteCommand } from "@aws-sdk/client-s3"; // ES Modules import
// const { S3Client, PutBucketWebsiteCommand } = require("@aws-sdk/client-s3"); // CommonJS import
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);
// {};

Example Usage

 Loading code editor

PutBucketWebsiteCommand Input

See PutBucketWebsiteCommandInput for more details

Parameter
Type
Description
Bucket
Required
string | undefined

The bucket name.

Note: To supply the Multi-region Access Point (MRAP) to Bucket, you need to install the "aws-sdk/signature-v4-crt" package to your project dependencies. For more information, please go to https://github.com/aws/aws-sdk-js-v3#known-issues

WebsiteConfiguration
Required
WebsiteConfiguration | undefined

Container for the request.

ChecksumAlgorithm
ChecksumAlgorithm | undefined

Indicates the algorithm used to create the checksum for the request when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see Checking object integrity  in the Amazon S3 User Guide.

If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter.

ContentMD5
string | undefined

The Base64 encoded 128-bit MD5 digest of the data. You must use this header as a message integrity check to verify that the request body was not corrupted in transit. For more information, see RFC 1864 .

For requests made using the Amazon Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this field is calculated automatically.

ExpectedBucketOwner
string | undefined

The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied).

PutBucketWebsiteCommand Output

Parameter
Type
Description
$metadata
Required
ResponseMetadata
Metadata pertaining to this request.

Throws

Name
Fault
Details
S3ServiceException
Base exception class for all service exceptions from S3 service.