com.amazonaws.services.s3.model.BucketWebsiteConfiguration Maven / Gradle / Ivy
Show all versions of aws-java-sdk-s3 Show documentation
/*
* Copyright 2011-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.s3.model;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
import com.amazonaws.services.s3.AmazonS3Client;
/**
* Bucket configuration options for hosting static websites entirely out of
* Amazon S3.
*
* To host a static website in Amazon S3, create a bucket, upload your files,
* and set the bucket website configuration. Once your bucket has been
* configured as a website, you can access all your content via the Amazon S3
* website endpoint. To ensure that the existing Amazon S3 REST API will
* continue to behave the same, regardless of whether or not your bucket has
* been configured to host a website, a new HTTP endpoint has been introduced
* where you can access your website content. The bucket content you want to
* make available via the website must be publicly readable.
*
* To enable hosting websites, Amazon S3 introduces the following
* concepts/features:
*
* - Website endpoints - When you configure a bucket as a website, the website
* is available via the the region-specific website endpoint where the bucket
* resides.
*
- Index document support - When configuring a bucket as a website you must
* provide an index document name. This is the webpage that Amazon S3 returns when
* it receives a request to the root of your website, or one of its
* subdirectories. Amazon S3 supports index documents in subdirectories.
*
- Error document support - Should an error occur, Amazon S3 will return an
* HTML error document, instead of an XML document.You can optionally provide
* your own error document that contains HTML, or any other static content
* specific to your website. You provide the error document name when you
* configure a bucket as a website. If you provide the custom error document,
* Amazon S3 returns your custom error document when an HTTP 4XX class error
* occurs. For other error non-4XX class errors, Amazon S3 will return its own
* error document.
*
*
* For more information on how to host a website on Amazon S3, see:
* http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteHosting.html.
*
* @see AmazonS3Client#setBucketWebsiteConfiguration(String, BucketWebsiteConfiguration)
* @see AmazonS3Client#getBucketWebsiteConfiguration(String)
* @see AmazonS3Client#deleteBucketWebsiteConfiguration(String)
*/
public class BucketWebsiteConfiguration implements Serializable {
/**
* The document to serve when a directory is specified (ex: index.html).
* This path is relative to the requested resource.
*/
private String indexDocumentSuffix;
/** The complete path to the document to serve for 4xx errors. */
private String errorDocument;
/**
* Container for redirect information where all requests will be redirect
* to. You can redirect requests to another host, to another page, or with
* another protocol. In the event of an error, you can can specify a
* different error code to return. .
*/
private RedirectRule redirectAllRequestsTo;
/**
* The list of routing rules that can be used for configuring redirects if
* certain conditions are meet.
*/
private List routingRules = new LinkedList();
/**
* Creates a new BucketWebsiteConfiguration.
*/
public BucketWebsiteConfiguration() {
}
/**
* Creates a new BucketWebsiteConfiguration with the specified index
* document suffix.
*
* @param indexDocumentSuffix
* The document to serve when a directory is specified (ex:
* index.html). This path is relative to the requested resource.
*/
public BucketWebsiteConfiguration(String indexDocumentSuffix) {
this.indexDocumentSuffix = indexDocumentSuffix;
}
/**
* Creates a new BucketWebsiteConfiguration with the specified index
* document suffix and error document.
*
* @param indexDocumentSuffix
* The document to serve when a directory is specified (ex:
* index.html). This path is relative to the requested resource.
* @param errorDocument
* The complete path to the document to serve for 4xx errors.
*/
public BucketWebsiteConfiguration(String indexDocumentSuffix, String errorDocument) {
this.indexDocumentSuffix = indexDocumentSuffix;
this.errorDocument = errorDocument;
}
/**
* Returns the document to serve when a directory is specified (ex:
* index.html). This path is relative to the requested resource.
*
* @return The document to serve when a directory is specified (ex:
* index.html). This path is relative to the requested resource.
*/
public String getIndexDocumentSuffix() {
return indexDocumentSuffix;
}
/**
* Sets the document to serve when a directory is specified (ex:
* index.html). This path is relative to the requested resource.
*
* @param indexDocumentSuffix
* The document to serve when a directory is specified (ex:
* index.html). This path is relative to the requested resource.
* @return
*/
public BucketWebsiteConfiguration withIndexDocumentSuffix(String indexDocumentSuffix) {
this.indexDocumentSuffix = indexDocumentSuffix;
return this;
}
/**
* Sets the document to serve when a directory is specified (ex:
* index.html). This path is relative to the requested resource.
*
* @param indexDocumentSuffix
* The document to serve when a directory is specified (ex:
* index.html). This path is relative to the requested resource.
*/
public void setIndexDocumentSuffix(String indexDocumentSuffix) {
this.indexDocumentSuffix = indexDocumentSuffix;
}
/**
* Returns the complete path to the document to serve for 4xx errors, or
* null if no error document has been configured.
*
* @return The complete path to the document to serve for 4xx errors, or
* null if no error document has been configured.
*/
public String getErrorDocument() {
return errorDocument;
}
/**
* Sets the complete path to the document to serve for 4xx errors.
*
* @param errorDocument
* The complete path to the document to serve for 4xx errors.
*/
public void setErrorDocument(String errorDocument) {
this.errorDocument = errorDocument;
}
/**
* Sets the redirect information where all requests will be redirect to.
*
* @param redirectAllRequestsTo
* The Redirect information where all requests will be redirect
* to.
*/
public void setRedirectAllRequestsTo(RedirectRule redirectAllRequestsTo) {
this.redirectAllRequestsTo = redirectAllRequestsTo;
}
/**
* Return the redirect information where all requests will be redirect to.
*/
public RedirectRule getRedirectAllRequestsTo() {
return redirectAllRequestsTo;
}
/**
* Sets the redirect information where all requests will be redirect to and
* returns a reference to this object(BucketWebsiteConfiguration) for method
* chaining.
*
* @param redirectAllRequestsTo
* The Redirect information where all requests will be redirect
* to.
* @return a reference to this object(BucketWebsiteConfiguration) for method
* chaining.
*/
public BucketWebsiteConfiguration withRedirectAllRequestsTo(RedirectRule redirectAllRequestsTo) {
this.redirectAllRequestsTo = redirectAllRequestsTo;
return this;
}
/**
* Set the list of routing rules that can be used for configuring redirects
* if certain conditions are meet.
*
* @param routingRules
* The list of routing rules that can be used for configuring
* redirects.
*/
public void setRoutingRules(List routingRules) {
this.routingRules = routingRules;
}
/**
* Return the list of routing rules that can be used for configuring
* redirects if certain conditions are meet.
*/
public List getRoutingRules() {
return routingRules;
}
/**
* Set the list of routing rules that can be used for configuring redirects
* if certain conditions are meet and returns a reference to this
* object(BucketWebsiteConfiguration) for method chaining.
*
* @param routingRules
* The list of routing rules that can be used for configuring
* redirects.
* @return A reference to this object(BucketWebsiteConfiguration) for method
* chaining.
*
*/
public BucketWebsiteConfiguration withRoutingRules(List routingRules) {
this.routingRules = routingRules;
return this;
}
}