BucketArgs

data class BucketArgs(val accessMonitor: Output<BucketAccessMonitorArgs>? = null, val acl: Output<String>? = null, val bucket: Output<String>? = null, val corsRules: Output<List<BucketCorsRuleArgs>>? = null, val forceDestroy: Output<Boolean>? = null, val lifecycleRuleAllowSameActionOverlap: Output<Boolean>? = null, val lifecycleRules: Output<List<BucketLifecycleRuleArgs>>? = null, val logging: Output<BucketLoggingArgs>? = null, val loggingIsenable: Output<Boolean>? = null, val policy: Output<String>? = null, val redundancyType: Output<String>? = null, val refererConfig: Output<BucketRefererConfigArgs>? = null, val resourceGroupId: Output<String>? = null, val serverSideEncryptionRule: Output<BucketServerSideEncryptionRuleArgs>? = null, val storageClass: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val transferAcceleration: Output<BucketTransferAccelerationArgs>? = null, val versioning: Output<BucketVersioningArgs>? = null, val website: Output<BucketWebsiteArgs>? = null) : ConvertibleToJava<BucketArgs>

Provides a resource to create a oss bucket and set its attribution.

NOTE: The bucket namespace is shared by all users of the OSS system. Please set bucket name as unique as possible. NOTE: Available since v1.2.0.

Example Usage

Private Bucket

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as random from "@pulumi/random";
const _default = new random.index.Integer("default", {
max: 99999,
min: 10000,
});
const bucket_acl = new alicloud.oss.Bucket("bucket-acl", {bucket: `example-value-${_default.result}`});
const bucket_aclBucketAcl = new alicloud.oss.BucketAcl("bucket-acl", {
bucket: bucket_acl.bucket,
acl: "private",
});
import pulumi
import pulumi_alicloud as alicloud
import pulumi_random as random
default = random.index.Integer("default",
max=99999,
min=10000)
bucket_acl = alicloud.oss.Bucket("bucket-acl", bucket=f"example-value-{default['result']}")
bucket_acl_bucket_acl = alicloud.oss.BucketAcl("bucket-acl",
bucket=bucket_acl.bucket,
acl="private")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Random = Pulumi.Random;
return await Deployment.RunAsync(() =>
{
var @default = new Random.Index.Integer("default", new()
{
Max = 99999,
Min = 10000,
});
var bucket_acl = new AliCloud.Oss.Bucket("bucket-acl", new()
{
BucketName = $"example-value-{@default.Result}",
});
var bucket_aclBucketAcl = new AliCloud.Oss.BucketAcl("bucket-acl", new()
{
Bucket = bucket_acl.BucketName,
Acl = "private",
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss"
"github.com/pulumi/pulumi-random/sdk/v4/go/random"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
Max: 99999,
Min: 10000,
})
if err != nil {
return err
}
bucket_acl, err := oss.NewBucket(ctx, "bucket-acl", &oss.BucketArgs{
Bucket: pulumi.Sprintf("example-value-%v", _default.Result),
})
if err != nil {
return err
}
_, err = oss.NewBucketAcl(ctx, "bucket-acl", &oss.BucketAclArgs{
Bucket: bucket_acl.Bucket,
Acl: pulumi.String("private"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.random.integer;
import com.pulumi.random.IntegerArgs;
import com.pulumi.alicloud.oss.Bucket;
import com.pulumi.alicloud.oss.BucketArgs;
import com.pulumi.alicloud.oss.BucketAcl;
import com.pulumi.alicloud.oss.BucketAclArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new Integer("default", IntegerArgs.builder()
.max(99999)
.min(10000)
.build());
var bucket_acl = new Bucket("bucket-acl", BucketArgs.builder()
.bucket(String.format("example-value-%s", default_.result()))
.build());
var bucket_aclBucketAcl = new BucketAcl("bucket-aclBucketAcl", BucketAclArgs.builder()
.bucket(bucket_acl.bucket())
.acl("private")
.build());
}
}
resources:
default:
type: random:integer
properties:
max: 99999
min: 10000
bucket-acl:
type: alicloud:oss:Bucket
properties:
bucket: example-value-${default.result}
bucket-aclBucketAcl:
type: alicloud:oss:BucketAcl
name: bucket-acl
properties:
bucket: ${["bucket-acl"].bucket}
acl: private

Static Website

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as random from "@pulumi/random";
const _default = new random.index.Integer("default", {
max: 99999,
min: 10000,
});
const bucket_website = new alicloud.oss.Bucket("bucket-website", {
bucket: `example-value-${_default.result}`,
website: {
indexDocument: "index.html",
errorDocument: "error.html",
},
});
import pulumi
import pulumi_alicloud as alicloud
import pulumi_random as random
default = random.index.Integer("default",
max=99999,
min=10000)
bucket_website = alicloud.oss.Bucket("bucket-website",
bucket=f"example-value-{default['result']}",
website={
"index_document": "index.html",
"error_document": "error.html",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Random = Pulumi.Random;
return await Deployment.RunAsync(() =>
{
var @default = new Random.Index.Integer("default", new()
{
Max = 99999,
Min = 10000,
});
var bucket_website = new AliCloud.Oss.Bucket("bucket-website", new()
{
BucketName = $"example-value-{@default.Result}",
Website = new AliCloud.Oss.Inputs.BucketWebsiteArgs
{
IndexDocument = "index.html",
ErrorDocument = "error.html",
},
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss"
"github.com/pulumi/pulumi-random/sdk/v4/go/random"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
Max: 99999,
Min: 10000,
})
if err != nil {
return err
}
_, err = oss.NewBucket(ctx, "bucket-website", &oss.BucketArgs{
Bucket: pulumi.Sprintf("example-value-%v", _default.Result),
Website: &oss.BucketWebsiteTypeArgs{
IndexDocument: pulumi.String("index.html"),
ErrorDocument: pulumi.String("error.html"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.random.integer;
import com.pulumi.random.IntegerArgs;
import com.pulumi.alicloud.oss.Bucket;
import com.pulumi.alicloud.oss.BucketArgs;
import com.pulumi.alicloud.oss.inputs.BucketWebsiteArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new Integer("default", IntegerArgs.builder()
.max(99999)
.min(10000)
.build());
var bucket_website = new Bucket("bucket-website", BucketArgs.builder()
.bucket(String.format("example-value-%s", default_.result()))
.website(BucketWebsiteArgs.builder()
.indexDocument("index.html")
.errorDocument("error.html")
.build())
.build());
}
}
resources:
default:
type: random:integer
properties:
max: 99999
min: 10000
bucket-website:
type: alicloud:oss:Bucket
properties:
bucket: example-value-${default.result}
website:
indexDocument: index.html
errorDocument: error.html

Enable Logging

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as random from "@pulumi/random";
const _default = new random.index.Integer("default", {
max: 99999,
min: 10000,
});
const bucket_target = new alicloud.oss.Bucket("bucket-target", {bucket: `example-value-${_default.result}`});
const bucket_targetBucketAcl = new alicloud.oss.BucketAcl("bucket-target", {
bucket: bucket_target.bucket,
acl: "public-read",
});
const bucket_logging = new alicloud.oss.Bucket("bucket-logging", {
bucket: `example-logging-${_default.result}`,
logging: {
targetBucket: bucket_target.id,
targetPrefix: "log/",
},
});
import pulumi
import pulumi_alicloud as alicloud
import pulumi_random as random
default = random.index.Integer("default",
max=99999,
min=10000)
bucket_target = alicloud.oss.Bucket("bucket-target", bucket=f"example-value-{default['result']}")
bucket_target_bucket_acl = alicloud.oss.BucketAcl("bucket-target",
bucket=bucket_target.bucket,
acl="public-read")
bucket_logging = alicloud.oss.Bucket("bucket-logging",
bucket=f"example-logging-{default['result']}",
logging={
"target_bucket": bucket_target.id,
"target_prefix": "log/",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Random = Pulumi.Random;
return await Deployment.RunAsync(() =>
{
var @default = new Random.Index.Integer("default", new()
{
Max = 99999,
Min = 10000,
});
var bucket_target = new AliCloud.Oss.Bucket("bucket-target", new()
{
BucketName = $"example-value-{@default.Result}",
});
var bucket_targetBucketAcl = new AliCloud.Oss.BucketAcl("bucket-target", new()
{
Bucket = bucket_target.BucketName,
Acl = "public-read",
});
var bucket_logging = new AliCloud.Oss.Bucket("bucket-logging", new()
{
BucketName = $"example-logging-{@default.Result}",
Logging = new AliCloud.Oss.Inputs.BucketLoggingArgs
{
TargetBucket = bucket_target.Id,
TargetPrefix = "log/",
},
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss"
"github.com/pulumi/pulumi-random/sdk/v4/go/random"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
Max: 99999,
Min: 10000,
})
if err != nil {
return err
}
bucket_target, err := oss.NewBucket(ctx, "bucket-target", &oss.BucketArgs{
Bucket: pulumi.Sprintf("example-value-%v", _default.Result),
})
if err != nil {
return err
}
_, err = oss.NewBucketAcl(ctx, "bucket-target", &oss.BucketAclArgs{
Bucket: bucket_target.Bucket,
Acl: pulumi.String("public-read"),
})
if err != nil {
return err
}
_, err = oss.NewBucket(ctx, "bucket-logging", &oss.BucketArgs{
Bucket: pulumi.Sprintf("example-logging-%v", _default.Result),
Logging: &oss.BucketLoggingTypeArgs{
TargetBucket: bucket_target.ID(),
TargetPrefix: pulumi.String("log/"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.random.integer;
import com.pulumi.random.IntegerArgs;
import com.pulumi.alicloud.oss.Bucket;
import com.pulumi.alicloud.oss.BucketArgs;
import com.pulumi.alicloud.oss.BucketAcl;
import com.pulumi.alicloud.oss.BucketAclArgs;
import com.pulumi.alicloud.oss.inputs.BucketLoggingArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new Integer("default", IntegerArgs.builder()
.max(99999)
.min(10000)
.build());
var bucket_target = new Bucket("bucket-target", BucketArgs.builder()
.bucket(String.format("example-value-%s", default_.result()))
.build());
var bucket_targetBucketAcl = new BucketAcl("bucket-targetBucketAcl", BucketAclArgs.builder()
.bucket(bucket_target.bucket())
.acl("public-read")
.build());
var bucket_logging = new Bucket("bucket-logging", BucketArgs.builder()
.bucket(String.format("example-logging-%s", default_.result()))
.logging(BucketLoggingArgs.builder()
.targetBucket(bucket_target.id())
.targetPrefix("log/")
.build())
.build());
}
}
resources:
default:
type: random:integer
properties:
max: 99999
min: 10000
bucket-target:
type: alicloud:oss:Bucket
properties:
bucket: example-value-${default.result}
bucket-targetBucketAcl:
type: alicloud:oss:BucketAcl
name: bucket-target
properties:
bucket: ${["bucket-target"].bucket}
acl: public-read
bucket-logging:
type: alicloud:oss:Bucket
properties:
bucket: example-logging-${default.result}
logging:
targetBucket: ${["bucket-target"].id}
targetPrefix: log/

Referer configuration

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as random from "@pulumi/random";
const _default = new random.index.Integer("default", {
max: 99999,
min: 10000,
});
const bucket_referer = new alicloud.oss.Bucket("bucket-referer", {
bucket: `example-value-${_default.result}`,
refererConfig: {
allowEmpty: false,
referers: [
"http://www.aliyun.com",
"https://www.aliyun.com",
],
},
});
const defaultBucketAcl = new alicloud.oss.BucketAcl("default", {
bucket: bucket_referer.bucket,
acl: "private",
});
import pulumi
import pulumi_alicloud as alicloud
import pulumi_random as random
default = random.index.Integer("default",
max=99999,
min=10000)
bucket_referer = alicloud.oss.Bucket("bucket-referer",
bucket=f"example-value-{default['result']}",
referer_config={
"allow_empty": False,
"referers": [
"http://www.aliyun.com",
"https://www.aliyun.com",
],
})
default_bucket_acl = alicloud.oss.BucketAcl("default",
bucket=bucket_referer.bucket,
acl="private")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Random = Pulumi.Random;
return await Deployment.RunAsync(() =>
{
var @default = new Random.Index.Integer("default", new()
{
Max = 99999,
Min = 10000,
});
var bucket_referer = new AliCloud.Oss.Bucket("bucket-referer", new()
{
BucketName = $"example-value-{@default.Result}",
RefererConfig = new AliCloud.Oss.Inputs.BucketRefererConfigArgs
{
AllowEmpty = false,
Referers = new[]
{
"http://www.aliyun.com",
"https://www.aliyun.com",
},
},
});
var defaultBucketAcl = new AliCloud.Oss.BucketAcl("default", new()
{
Bucket = bucket_referer.BucketName,
Acl = "private",
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/oss"
"github.com/pulumi/pulumi-random/sdk/v4/go/random"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
Max: 99999,
Min: 10000,
})
if err != nil {
return err
}
bucket_referer, err := oss.NewBucket(ctx, "bucket-referer", &oss.BucketArgs{
Bucket: pulumi.Sprintf("example-value-%v", _default.Result),
RefererConfig: &oss.BucketRefererConfigArgs{
AllowEmpty: pulumi.Bool(false),
Referers: pulumi.StringArray{
pulumi.String("http://www.aliyun.com"),
pulumi.String("https://www.aliyun.com"),
},
},
})
if err != nil {
return err
}
_, err = oss.NewBucketAcl(ctx, "default", &oss.BucketAclArgs{
Bucket: bucket_referer.Bucket,
Acl: pulumi.String("private"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.random.integer;
import com.pulumi.random.IntegerArgs;
import com.pulumi.alicloud.oss.Bucket;
import com.pulumi.alicloud.oss.BucketArgs;
import com.pulumi.alicloud.oss.inputs.BucketRefererConfigArgs;
import com.pulumi.alicloud.oss.BucketAcl;
import com.pulumi.alicloud.oss.BucketAclArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var default_ = new Integer("default", IntegerArgs.builder()
.max(99999)
.min(10000)
.build());
var bucket_referer = new Bucket("bucket-referer", BucketArgs.builder()
.bucket(String.format("example-value-%s", default_.result()))
.refererConfig(BucketRefererConfigArgs.builder()
.allowEmpty(false)
.referers(
"http://www.aliyun.com",
"https://www.aliyun.com")
.build())
.build());
var defaultBucketAcl = new BucketAcl("defaultBucketAcl", BucketAclArgs.builder()
.bucket(bucket_referer.bucket())
.acl("private")
.build());
}
}
resources:
default:
type: random:integer
properties:
max: 99999
min: 10000
bucket-referer:
type: alicloud:oss:Bucket
properties:
bucket: example-value-${default.result}
refererConfig:
allowEmpty: false
referers:
- http://www.aliyun.com
- https://www.aliyun.com
defaultBucketAcl:
type: alicloud:oss:BucketAcl
name: default
properties:
bucket: ${["bucket-referer"].bucket}
acl: private

Set lifecycle rule

Import

OSS bucket can be imported using the bucket name, e.g.

$ pulumi import alicloud:oss/bucket:Bucket bucket bucket-12345678

Constructors

Link copied to clipboard
constructor(accessMonitor: Output<BucketAccessMonitorArgs>? = null, acl: Output<String>? = null, bucket: Output<String>? = null, corsRules: Output<List<BucketCorsRuleArgs>>? = null, forceDestroy: Output<Boolean>? = null, lifecycleRuleAllowSameActionOverlap: Output<Boolean>? = null, lifecycleRules: Output<List<BucketLifecycleRuleArgs>>? = null, logging: Output<BucketLoggingArgs>? = null, loggingIsenable: Output<Boolean>? = null, policy: Output<String>? = null, redundancyType: Output<String>? = null, refererConfig: Output<BucketRefererConfigArgs>? = null, resourceGroupId: Output<String>? = null, serverSideEncryptionRule: Output<BucketServerSideEncryptionRuleArgs>? = null, storageClass: Output<String>? = null, tags: Output<Map<String, String>>? = null, transferAcceleration: Output<BucketTransferAccelerationArgs>? = null, versioning: Output<BucketVersioningArgs>? = null, website: Output<BucketWebsiteArgs>? = null)

Properties

Link copied to clipboard

A access monitor status of a bucket. See access_monitor below.

Link copied to clipboard
val acl: Output<String>? = null

The canned ACL to apply. Can be "private", "public-read" and "public-read-write". This property has been deprecated since 1.220.0, please use the resource alicloud.oss.BucketAcl instead.

Link copied to clipboard
val bucket: Output<String>? = null
Link copied to clipboard
val corsRules: Output<List<BucketCorsRuleArgs>>? = null

A rule of Cross-Origin Resource Sharing. The items of core rule are no more than 10 for every OSS bucket. See cors_rule below.

Link copied to clipboard
val forceDestroy: Output<Boolean>? = null

A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error. These objects are not recoverable. Defaults to "false".

Link copied to clipboard

A boolean that indicates lifecycle rules allow prefix overlap.

Link copied to clipboard

A configuration of object lifecycle management. See lifecycle_rule below.

Link copied to clipboard
val logging: Output<BucketLoggingArgs>? = null

A Settings of bucket logging. See logging below.

Link copied to clipboard
val loggingIsenable: Output<Boolean>? = null

The flag of using logging enable container. Defaults true.

Link copied to clipboard
val policy: Output<String>? = null

Json format text of bucket policy bucket policy management. This property has been deprecated since 1.220.0, please use the resource alicloud.oss.BucketPolicy instead.

Link copied to clipboard
val redundancyType: Output<String>? = null

The redundancy type to enable. Can be "LRS", and "ZRS". Defaults to "LRS".

Link copied to clipboard

The configuration of referer. This property has been deprecated since 1.220.0, please use the resource alicloud.oss.BucketReferer instead. See referer_config below.

Link copied to clipboard
val resourceGroupId: Output<String>? = null

The ID of the resource group to which the bucket belongs.

Link copied to clipboard

A configuration of server-side encryption. See server_side_encryption_rule below.

Link copied to clipboard
val storageClass: Output<String>? = null

The storage class to apply. Can be "Standard", "IA", "Archive", "ColdArchive" and "DeepColdArchive". Defaults to "Standard". "ColdArchive" is available since 1.203.0. "DeepColdArchive" is available since 1.209.0.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A mapping of tags to assign to the bucket. The items are no more than 10 for a bucket.

Link copied to clipboard

A transfer acceleration status of a bucket. See transfer_acceleration below.

Link copied to clipboard
val versioning: Output<BucketVersioningArgs>? = null

A state of versioning. See versioning below.

Link copied to clipboard
val website: Output<BucketWebsiteArgs>? = null

A website configuration. See website below.

Functions

Link copied to clipboard
open override fun toJava(): BucketArgs