All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ibm.cloud.objectstorage.services.s3.model.BucketWebsiteConfiguration Maven / Gradle / Ivy

Go to download

The IBM COS Java SDK for Amazon S3 module holds the client classes that are used for communicating with IBM Cloud Object Storage Service

The newest version!
/*
 * Copyright 2011-2023 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.ibm.cloud.objectstorage.services.s3.model;
import java.io.Serializable;

import java.util.LinkedList;
import java.util.List;

import com.ibm.cloud.objectstorage.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; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy