Files
g.hnyhua.cn/COSXML/Model/Bucket/PutBucketWebsiteRequest.cs

70 lines
2.4 KiB
C#
Raw Normal View History


using COSXML.Common;
using COSXML.Model.Tag;
using COSXML.Network;
using System.Collections.Generic;
using System.Text;
namespace COSXML.Model.Bucket
{
public sealed class PutBucketWebsiteRequest:BucketRequest
{
private WebsiteConfiguration websiteConfiguration;
public PutBucketWebsiteRequest(string bucket) : base(bucket)
{
this.method = CosRequestMethod.PUT;
this.queryParameters.Add("website", null);
websiteConfiguration = new WebsiteConfiguration();
}
public void SetIndexDocument(string suffix)
{
if (suffix != null)
{
if (websiteConfiguration.indexDocument == null) websiteConfiguration.indexDocument = new WebsiteConfiguration.IndexDocument();
websiteConfiguration.indexDocument.suffix = suffix;
}
}
public void SetErrorDocument(string key)
{
if (key != null)
{
if (websiteConfiguration.errorDocument == null) websiteConfiguration.errorDocument = new WebsiteConfiguration.ErrorDocument();
websiteConfiguration.errorDocument.key = key;
}
}
public void SetRedirectAllRequestTo(string protocol)
{
if (protocol != null)
{
if (websiteConfiguration.redirectAllRequestTo == null) websiteConfiguration.redirectAllRequestTo = new WebsiteConfiguration.RedirectAllRequestTo();
websiteConfiguration.redirectAllRequestTo.protocol = protocol;
}
}
public void SetRoutingRules(List<WebsiteConfiguration.RoutingRule> rules)
{
if (rules != null && rules.Count > 0)
{
if (websiteConfiguration.routingRules == null) websiteConfiguration.routingRules = new List<WebsiteConfiguration.RoutingRule>();
foreach (WebsiteConfiguration.RoutingRule rule in rules)
{
websiteConfiguration.routingRules.Add(rule);
}
}
}
public override Network.RequestBody GetRequestBody()
{
string content = Transfer.XmlBuilder.BuildWebsiteConfiguration(websiteConfiguration);
byte[] data = Encoding.UTF8.GetBytes(content);
ByteRequestBody body = new ByteRequestBody(data);
return body;
}
}
}