オブジェクトのライフサイクル管理

コンセプトに移動

このページでは、オブジェクトのライフサイクル管理を有効にする方法を説明します。また、ライフサイクル ポリシーの例も示します。

バケットにライフサイクル管理を設定する

ライフサイクル管理を有効にする

バケットでライフサイクル管理を有効にするには:

Console

  1. Google Cloud Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. バケットリストで、有効にするバケットを見つけ、バケットの名前をクリックします。

  3. [ライフサイクル] タブをクリックします。

    ライフサイクル ルールのページが表示されます。

  4. [ルールを追加] をクリックします。

  5. 表示されるページで、構成を指定します。

    1. オブジェクトが条件を満たす場合に行う操作を選択します。

    2. [続行] をクリックします。

    3. 操作が行われる条件を選択します。

    4. [続行] をクリックします。

    5. [作成] をクリックします。

Cloud Storage ブラウザで失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。

gsutil

  1. 適用するライフサイクル構成ルールを含む .json ファイルを作成します。サンプルの .json ファイルについては、構成例をご覧ください。

  2. lifecycle set コマンドを使用して、構成を適用します。

    gsutil lifecycle set LIFECYCLE_CONFIG_FILE gs://BUCKET_NAME

    ここで

    • LIFECYCLE_CONFIG_FILE は、手順 1 で作成したファイルの名前です。
    • BUCKET_NAME は、関連するバケットの名前です。例: my-bucket

コードサンプル

C++

詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name) {
  gcs::BucketLifecycle bucket_lifecycle_rules = gcs::BucketLifecycle{
      {gcs::LifecycleRule(gcs::LifecycleRule::ConditionConjunction(
                              gcs::LifecycleRule::MaxAge(30),
                              gcs::LifecycleRule::IsLive(true)),
                          gcs::LifecycleRule::Delete())}};

  StatusOr<gcs::BucketMetadata> updated_metadata = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetLifecycle(bucket_lifecycle_rules));

  if (!updated_metadata) {
    throw std::runtime_error(updated_metadata.status().message());
  }

  if (!updated_metadata->has_lifecycle() ||
      updated_metadata->lifecycle().rule.empty()) {
    std::cout << "Bucket lifecycle management is not enabled for bucket "
              << updated_metadata->name() << ".\n";
    return;
  }
  std::cout << "Successfully enabled bucket lifecycle management for bucket "
            << updated_metadata->name() << ".\n";
  std::cout << "The bucket lifecycle rules are";
  for (auto const& kv : updated_metadata->lifecycle().rule) {
    std::cout << "\n " << kv.condition() << ", " << kv.action();
  }
  std::cout << "\n";
}

Go

詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。

import (
	"context"
	"fmt"
	"io"
	"time"

	"cloud.google.com/go/storage"
)

// enableBucketLifecycleManagement adds a lifecycle delete rule with the
// condition that the object is 100 days old.
func enableBucketLifecycleManagement(w io.Writer, bucketName string) error {
	// bucketName := "bucket-name"
	ctx := context.Background()
	client, err := storage.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("storage.NewClient: %v", err)
	}
	defer client.Close()

	ctx, cancel := context.WithTimeout(ctx, time.Second*10)
	defer cancel()

	bucket := client.Bucket(bucketName)
	bucketAttrsToUpdate := storage.BucketAttrsToUpdate{
		Lifecycle: &storage.Lifecycle{
			Rules: []storage.LifecycleRule{
				{
					Action: storage.LifecycleAction{Type: "Delete"},
					Condition: storage.LifecycleCondition{
						AgeInDays: 100,
					},
				},
			},
		},
	}

	attrs, err := bucket.Update(ctx, bucketAttrsToUpdate)
	if err != nil {
		return fmt.Errorf("Bucket(%q).Update: %v", bucketName, err)
	}
	fmt.Fprintf(w, "Lifecycle management is enabled for bucket %v\n and the rules are:\n", bucketName)
	for _, rule := range attrs.Lifecycle.Rules {
		fmt.Fprintf(w, "Action: %v\n", rule.Action)
		fmt.Fprintf(w, "Condition: %v\n", rule.Condition)
	}

	return nil
}

Java

詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。

import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.BucketInfo.LifecycleRule;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import com.google.common.collect.ImmutableList;

public class EnableLifecycleManagement {
  public static void enableLifecycleManagement(String projectId, String bucketName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Bucket bucket = storage.get(bucketName);

    // See the LifecycleRule documentation for additional info on what you can do with lifecycle
    // management rules. This one deletes objects that are over 100 days old.
    // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/BucketInfo.LifecycleRule.html
    bucket
        .toBuilder()
        .setLifecycleRules(
            ImmutableList.of(
                new LifecycleRule(
                    LifecycleRule.LifecycleAction.newDeleteAction(),
                    LifecycleRule.LifecycleCondition.newBuilder().setAge(100).build())))
        .build()
        .update();

    System.out.println("Lifecycle management was enabled and configured for bucket " + bucketName);
  }
}

Node.js

詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

async function enableBucketLifecycleManagement() {
  const [metadata] = await storage.bucket(bucketName).addLifecycleRule({
    action: 'delete',
    condition: {age: 100},
  });

  console.log(
    `Lifecycle management is enabled for bucket ${bucketName} and the rules are:`
  );

  console.log(metadata.lifecycle.rule);
}

enableBucketLifecycleManagement().catch(console.error);

PHP

詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。

use Google\Cloud\Storage\StorageClient;
use Google\Cloud\Storage\Bucket;

/**
 * Enable bucket lifecycle management.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 */
function enable_bucket_lifecycle_management($bucketName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);

    $lifecycle = Bucket::lifecycle()
        ->addDeleteRule([
            'age' => 100
        ]);

    $bucket->update([
        'lifecycle' => $lifecycle
    ]);

    $lifecycle = $bucket->currentLifecycle();

    printf('Lifecycle management is enabled for bucket %s and the rules are:' . PHP_EOL, $bucketName);
    foreach ($lifecycle as $rule) {
        print_r($rule);
        print(PHP_EOL);
    }
}

Python

詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。

from google.cloud import storage

def enable_bucket_lifecycle_management(bucket_name):
    """Enable lifecycle management for a bucket"""
    # bucket_name = "my-bucket"

    storage_client = storage.Client()

    bucket = storage_client.get_bucket(bucket_name)
    rules = bucket.lifecycle_rules

    print("Lifecycle management rules for bucket {} are {}".format(bucket_name, list(rules)))
    bucket.add_lifecycle_delete_rule(age=2)
    bucket.patch()

    rules = bucket.lifecycle_rules
    print("Lifecycle management is enable for bucket {} and the rules are {}".format(bucket_name, list(rules)))

    return bucket

Ruby

詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。

# Enable lifecycle management for a bucket
# bucket_name = "Your Google Cloud Storage bucket name"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new
bucket = storage.bucket bucket_name

rules = bucket.lifecycle do |l|
  l.add_delete_rule age: 2
end

puts "Lifecycle management is enabled for bucket #{bucket_name} and the rules are #{rules}"

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
  2. 適用するライフサイクル構成ルールを含む .json ファイルを作成します。サンプルの .json ファイルについては、構成例をご覧ください。

  3. cURL を使用して JSON API を呼び出し、PATCH Bucket リクエストを行います。

    curl -X PATCH --data-binary @LIFECYCLE_CONFIG_FILE.json \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=lifecycle"

    ここで

    • LIFECYCLE_CONFIG_FILE は、手順 2 で作成したファイルの名前です。
    • OAUTH2_TOKEN は、手順 1 で生成したアクセス トークンです。
    • BUCKET_NAME は、関連するバケットの名前です。例: my-bucket

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
  2. 適用するライフサイクル構成ルールを含む .xml ファイルを作成します。サンプルの .xml ファイルについては、構成例をご覧ください。

  3. cURL を使用して XML API を呼び出し、PUT Bucket リクエストを行います。

    curl -X PUT --data-binary @XML_FILE.xml \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      "https://storage.googleapis.com/BUCKET_NAME?lifecycle"

    ここで

    • XML_FILE は、手順 2 で作成したファイルの名前です。
    • OAUTH2_TOKEN は、手順 1 で生成したアクセス トークンです。
    • BUCKET_NAME は、関連するバケットの名前です。例: my-bucket

ライフサイクル管理を無効にする

バケットのライフサイクル管理を無効にするには:

Console

  1. Google Cloud Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. バケットリストで、無効にするバケットを見つけ、[ライフサイクル ルール] 列のエントリをクリックします。

    ライフサイクル ルールのページが表示されます。

  3. [すべて削除] をクリックします。

  4. 表示される確認ウィンドウで、[確認] をクリックします。

Cloud Storage ブラウザで失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。

gsutil

  1. ライフサイクルの構成を空にした .json ファイルを作成します。

    {
      "lifecycle": {
        "rule": []
      }
    }
  2. lifecycle set コマンドを使用します。

    gsutil lifecycle set LIFECYCLE_CONFIG_FILE gs://BUCKET_NAME

    ここで

    • LIFECYCLE_CONFIG_FILE は、手順 1 で作成したファイルの名前です。
    • BUCKET_NAME は、関連するバケットの名前です。例: my-bucket

コードサンプル

C++

詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name) {
  StatusOr<gcs::BucketMetadata> updated_metadata = client.PatchBucket(
      bucket_name, gcs::BucketMetadataPatchBuilder().ResetLifecycle());

  if (!updated_metadata) {
    throw std::runtime_error(updated_metadata.status().message());
  }

  std::cout << "Successfully disabled bucket lifecycle management for bucket "
            << updated_metadata->name() << ".\n";
}

Go

詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。

import (
	"context"
	"fmt"
	"io"
	"time"

	"cloud.google.com/go/storage"
)

// disableBucketLifecycleManagement removes all existing lifecycle rules
// from the bucket.
func disableBucketLifecycleManagement(w io.Writer, bucketName string) error {
	// bucketName := "bucket-name"
	ctx := context.Background()
	client, err := storage.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("storage.NewClient: %v", err)
	}
	defer client.Close()

	ctx, cancel := context.WithTimeout(ctx, time.Second*10)
	defer cancel()

	bucket := client.Bucket(bucketName)
	bucketAttrsToUpdate := storage.BucketAttrsToUpdate{
		Lifecycle: &storage.Lifecycle{},
	}

	_, err = bucket.Update(ctx, bucketAttrsToUpdate)
	if err != nil {
		return fmt.Errorf("Bucket(%q).Update: %v", bucketName, err)
	}
	fmt.Fprintf(w, "Lifecycle management is disabled for bucket %v.\n", bucketName)

	return nil
}

Java

詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。

import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class DisableLifecycleManagement {
  public static void disableLifecycleManagement(String projectId, String bucketName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Bucket bucket = storage.get(bucketName);
    bucket.toBuilder().deleteLifecycleRules().build().update();

    System.out.println("Lifecycle management was disabled for bucket " + bucketName);
  }
}

Node.js

詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

async function disableBucketLifecycleManagement() {
  await storage.bucket(bucketName).setMetadata({lifecycle: null});

  console.log(`Lifecycle management is disabled for bucket ${bucketName}.`);
}

disableBucketLifecycleManagement().catch(console.error);

PHP

詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。

use Google\Cloud\Storage\StorageClient;
use Google\Cloud\Storage\Bucket;

/**
 * Disable bucket lifecycle management.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 */
function disable_bucket_lifecycle_management($bucketName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);

    $bucket->update([
        'lifecycle' => null
    ]);

    printf('Lifecycle management is disabled for bucket %s.' . PHP_EOL, $bucketName);
}

Python

詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。

from google.cloud import storage

def disable_bucket_lifecycle_management(bucket_name):
    """Disable lifecycle management for a bucket"""
    # bucket_name = "my-bucket"

    storage_client = storage.Client()

    bucket = storage_client.get_bucket(bucket_name)
    bucket.clear_lifecyle_rules()
    bucket.patch()
    rules = bucket.lifecycle_rules

    print("Lifecycle management is disable for bucket {} and the rules are {}".format(bucket_name, list(rules)))
    return bucket

Ruby

詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。

# Disable lifecycle management for a bucket
# bucket_name = "Your Google Cloud Storage bucket name"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new
bucket = storage.bucket bucket_name

bucket.lifecycle do |l|
  l.clear
end

puts "Lifecycle management is disabled for bucket #{bucket_name}"

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
  2. ライフサイクルの構成を空にした .json ファイルを作成します。

    {
      "lifecycle": {
        "rule": []
      }
    }
  3. cURL を使用して JSON API を呼び出し、PATCH Bucket リクエストを行います。

    curl -X PATCH --data-binary @LIFECYCLE_CONFIG_FILE.json \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=lifecycle"

    ここで

    • LIFECYCLE_CONFIG_FILE は、手順 2 で作成したファイルの名前です。
    • OAUTH2_TOKEN は、手順 1 で生成したアクセス トークンです。
    • BUCKET_NAME は、関連するバケットの名前です。例: my-bucket

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
  2. ライフサイクルの構成を空にした .xml ファイルを作成します。

    <LifecycleConfiguration/>
  3. cURL を使用して XML API を呼び出し、PUT Bucket リクエストを行います。

    curl -X PUT --data-binary @XML_FILE.xml \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      "https://storage.googleapis.com/BUCKET_NAME?lifecycle"

    ここで

    • XML_FILE は、手順 2 で作成したファイルの名前です。
    • OAUTH2_TOKEN は、手順 1 で生成したアクセス トークンです。
    • BUCKET_NAME は、関連するバケットの名前です。例: my-bucket

ライフサイクル構成を確認する

バケットに設定したライフサイクル構成を確認するには:

Console

  1. Google Cloud Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. バケットリストの [ライフサイクル] 列に、各バケットのライフサイクル ステータスが表示されます。

    このステータスをクリックして、ルールを追加、表示、編集、および削除できます。

Cloud Storage ブラウザで失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。

gsutil

  1. lifecycle get コマンドを使用します。

    gsutil lifecycle get gs://BUCKET_NAME

    BUCKET_NAME は、該当するバケットの名前です。例: my-bucket

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
  2. cURL を使用して JSON API を呼び出し、GET Bucket リクエストを行います。

    curl -X GET \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=lifecycle"

    ここで

    • OAUTH2_TOKEN は、手順 1 で生成したアクセス トークンです。
    • BUCKET_NAME は、関連するバケットの名前です。例: my-bucket

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
  2. cURL を使用して XML API を呼び出し、GET Bucket リクエストを行います。

    curl -X GET \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      "https://storage.googleapis.com/BUCKET_NAME?lifecycle"

    ここで

    • OAUTH2_TOKEN は、手順 1 で生成したアクセス トークンです。
    • BUCKET_NAME は、関連するバケットの名前です。例: my-bucket

オブジェクトのライフサイクルの構成例

次の例は、一般的なライフサイクル条件が満たされたときにライフサイクル アクションを行う特定のライフサイクル構成を示しています。

オブジェクトを削除する

次のライフサイクル構成では、3 つのルールが定義されています。なお、2 番目のルールと 3 番目のルールは、バケットでオブジェクトのバージョニングを使用している場合にのみ適用されます。

  1. 30 日以上経過したオブジェクトのライブ バージョンを削除する。

    • バケットでオブジェクトのバージョニングを使用している場合、オブジェクトは非現行バージョンになり、他の 2 つのルールの対象となります。

    • バケットでオブジェクトのバージョニングを使用しない場合、オブジェクトは完全に削除され、復元できません。

  2. バケットにオブジェクトの新しいバージョンが 2 つ存在する場合、オブジェクトの非現行バージョンを削除する。このルールの対象となるオブジェクトは完全に削除され、復元できません。

  3. 35 日以上経過したオブジェクトの非現行バージョンを削除する。このルールの対象となるオブジェクトは完全に削除され、復元できません。

この 3 つのルールを組み合わせると、オブジェクトはバケット内で最大 35 日(ライブ バージョンとして 30 日、非現行バージョンとして 5 日)が経過すると完全削除の対象となります。この構成の範囲外で置き換えまたは削除されたライブ バージョンのオブジェクトの場合、これより早く(非現行バージョンになってから 5 日後、またはバケット内にオブジェクトの新しいバージョンが複数存在する場合はその時点で)完全削除の対象となります。

Console

この設定では、有効化のセクションの手順を使用します。

  1. 30 日以上経過したオブジェクトのライブ バージョンを削除するには:

    1. [オブジェクトを削除する] アクションを選択します。
    2. [年齢] 条件を選択し、値「30」を入力します。
    3. [ライブ状態] 条件を選択し、[ライブ] オプションを選択します。
  2. 新しいバージョンが 2 つある場合に、オブジェクトの非現行バージョンを削除するには:

    1. [オブジェクトを削除する] アクションを選択します。
    2. [新しいバージョンの数] 条件を選択し、値「2」を入力します。
  3. 35 日以上経過したオブジェクトの非現行バージョンを削除するには:

    1. [オブジェクトを削除する] アクションを選択します。
    2. [年齢] 条件を選択し、値「35」を入力します。
    3. [ライブ状態] 条件を選択し、[現行以外] オプションを選択します。

gsutil

次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします

{
"lifecycle": {
  "rule": [
  {
    "action": {"type": "Delete"},
    "condition": {
      "age": 30,
      "isLive": true
    }
  },
  {
    "action": {"type": "Delete"},
    "condition": {
      "numNewerVersions": 2
    }
  },
  {
    "action": {"type": "Delete"},
    "condition": {
      "age": 35,
      "isLive": false
    }
  }
]
}
}

ライフサイクル構成ファイルの一般的な形式については、JSON のバケット リソース表現をご覧ください。

REST API

JSON API

次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします

{
"lifecycle": {
  "rule": [
  {
    "action": {"type": "Delete"},
    "condition": {
      "age": 30,
      "isLive": true
    }
  },
  {
    "action": {"type": "Delete"},
    "condition": {
      "numNewerVersions": 2
    }
  },
  {
    "action": {"type": "Delete"},
    "condition": {
      "age": 35,
      "isLive": false
    }
  }
]
}
}

ライフサイクル構成ファイルの一般的な形式については、JSON のバケット リソース表現をご覧ください。

XML API

次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします

<?xml version="1.0" encoding="UTF-8" ?>
<LifecycleConfiguration>
    <Rule>
        <Action>
            <Delete/>
        </Action>
        <Condition>
            <IsLive>true</IsLive>
            <Age>30</Age>
        </Condition>
    </Rule>
    <Rule>
        <Action>
            <Delete/>
        </Action>
        <Condition>
            <NumberOfNewerVersions>2</Age>
        </Condition>
    </Rule>
    <Rule>
        <Action>
            <Delete/>
        </Action>
        <Condition>
            <IsLive>false</IsLive>
            <Age>35</Age>
        </Condition>
    </Rule>
</LifecycleConfiguration>

ライフサイクル構成ファイルの一般的な形式については、XML のライフサイクル構成形式をご覧ください。

オブジェクトのストレージ クラスを変更する

次のライフサイクル構成では、2 つのルールが定義されています。

  1. オブジェクトの経過時間が 365 日(1 年)を超えていて、かつ、現在のストレージ クラスが Standard Storage、Multi-Regional Storage、Durable Reduced Availability(DRA)Storage のいずれかの場合、オブジェクトのストレージ クラスを Nearline Storage に変更する。
  2. オブジェクトの経過期間が 1,095 日(3 年)を超えていて、かつ、現在のストレージ クラスが Nearline Storage の場合、オブジェクトのストレージ クラスを Coldline Storage に変更する。

Console

この設定では、有効化のセクションの手順を使用します。

  1. オブジェクトの作成から 365 日後にオブジェクトを Cloud Storage Nearline に移動するには:

    1. [ストレージ クラスを Nearline に設定する] アクションを選択します。
    2. [年齢] 条件を選択し、値「365」を入力します。
    3. [一致するストレージ クラス] 条件を選択し、[Standard]、[マルチリージョン]、[Durable Reduced Availability] オプションを選択します。
  2. オブジェクトの作成から 1095 日後にオブジェクトを Cloud Storage Coldline に移動するには:

    1. [ストレージ クラスを Coldline に設定する] アクションを選択します。
    2. [年齢] 条件を選択し、値「1095」を入力します。
    3. [一致するストレージ クラス] 条件を選択し、[Nearline] オプションを選択します。

gsutil

次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします

{
"lifecycle": {
  "rule": [
  {
    "action": {
      "type": "SetStorageClass",
      "storageClass": "NEARLINE"
    },
    "condition": {
      "age": 365,
      "matchesStorageClass": ["MULTI_REGIONAL", "STANDARD", "DURABLE_REDUCED_AVAILABILITY"]
    }
  },
  {
    "action": {
      "type": "SetStorageClass",
      "storageClass": "COLDLINE"
    },
    "condition": {
      "age": 1095,
      "matchesStorageClass": ["NEARLINE"]
    }
  }
]
}
}

ライフサイクル構成ファイルの一般的な形式については、JSON のバケット リソース表現をご覧ください。

REST API

JSON API

次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします

{
"lifecycle": {
  "rule": [
  {
    "action": {
      "type": "SetStorageClass",
      "storageClass": "NEARLINE"
    },
    "condition": {
      "age": 365,
      "matchesStorageClass": ["MULTI_REGIONAL", "STANDARD", "DURABLE_REDUCED_AVAILABILITY"]
    }
  },
  {
    "action": {
      "type": "SetStorageClass",
      "storageClass": "COLDLINE"
    },
    "condition": {
      "age": 1095,
      "matchesStorageClass": ["NEARLINE"]
    }
  }
]
}
}

ライフサイクル構成ファイルの一般的な形式については、JSON のバケット リソース表現をご覧ください。

XML API

次のライフサイクル構成をバケットに適用するには、ライフサイクル管理を有効にします

<?xml version="1.0" encoding="UTF-8" ?>
<LifecycleConfiguration>
    <Rule>
        <Action>
            <SetStorageClass>NEARLINE</SetStorageClass>
        </Action>
        <Condition>
            <Age>365</Age>
            <MatchesStorageClass>MULTI_REGIONAL</MatchesStorageClass>
            <MatchesStorageClass>STANDARD</MatchesStorageClass>
            <MatchesStorageClass>DURABLE_REDUCED_AVAILABILITY</MatchesStorageClass>
        </Condition>
    </Rule>
    <Rule>
        <Action>
            <SetStorageClass>COLDLINE</SetStorageClass>
        </Action>
        <Condition>
            <Age>1095</Age>
            <MatchesStorageClass>NEARLINE</MatchesStorageClass>
        </Condition>
    </Rule>
</LifecycleConfiguration>

ライフサイクル構成ファイルの一般的な形式については、XML のライフサイクル構成形式をご覧ください。

次のステップ