Bucket

class Bucket : KotlinCustomResource

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

Properties

Link copied to clipboard

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

Link copied to clipboard
val acl: Output<String>

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>
Link copied to clipboard

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 creationDate: Output<String>

The creation date of the bucket.

Link copied to clipboard

The extranet access endpoint of the bucket.

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

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
val id: Output<String>
Link copied to clipboard

The intranet access endpoint of the bucket.

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 location: Output<String>

The location of the bucket.

Link copied to clipboard
val logging: Output<BucketLogging>?

A Settings of bucket logging. See logging below.

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

The flag of using logging enable container. Defaults true.

Link copied to clipboard
val owner: Output<String>

The bucket owner.

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

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 pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val redundancyType: Output<String>?

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>

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>?

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>>?

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 urn: Output<String>
Link copied to clipboard

A state of versioning. See versioning below.

Link copied to clipboard
val website: Output<BucketWebsite>?

A website configuration. See website below.