LoginSignup
0
0

More than 3 years have passed since last update.

[Cloudian #3] Python(boto3)で、オブジェクトストレージのバケットを新規作成してみる

Last updated at Posted at 2020-12-17

はじめに

Cloudianは、AWSのS3完全互換のAPIを持ったオブジェクトストレージです。
前回は、Python(boto3)で、作成済みバケットをいろんなパターンで表示してみました。

今回は、Python(boto3)で、オブジェクトストレージのバケットを新規作成してみたいと思います。

バケットの新規作成 / create_bucket()

オブジェクトストレージ/Cloudianにバケットを新規作成します。

1. シンプルなバケット作成例(属性は全てデフォルト)

以下の例では、create_bucket() の引数に作成するバケット名( Bucket=’pythonbucket1’ )のみを設定し、属性値は全てデフォルトを使用してバケットを作成しています。

test1.py
import boto3

client = boto3.client(
    's3',
    endpoint_url='https://xxx.yyy.com'
)

# バケットの新規作成
client.create_bucket(Bucket='pythonbucket1')
{'ResponseMetadata': {'RequestId': '9dad4484-0e30-1dbc-a754-06bdfcde1d5e',
  'HostId': '3d5c05376530a2eb49e3e90576f83c5b',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'date': 'Mon, 14 Dec 2020 01:51:29 GMT',
   'x-amz-request-id': '9dad4484-0e30-1dbc-a754-06bdfcde1d5e',
   'location': 'http://pythonbucket1.s3-region1.admin-tech.tokyo',
   'x-amz-id-2': '3d5c05376530a2eb49e3e90576f83c5b',
   'content-length': '0',
   'server': 'CloudianS3'},
  'RetryAttempts': 0},
 'Location': 'http://pythonbucket1.s3-region1.admin-tech.tokyo'}

list_buckets()からは非常に多くの情報が返されるため、以降の例では出力を絞り込んで 表示させていきます。

2. 属性を指定したバケット作成例①

以下の例では 、create_bucket() の引数に作成するバケット名 ( Bucket=’pythonbucket1’ )とそのバケットの ACL( ACL=’public-read’ )を設定して、バケットを作成しています。

test2.py
import boto3

client = boto3.client(
    's3',
    endpoint_url='https://xxx.yyy.com'
)

# バケットの新規作成
client.create_bucket(
    ACL='public-read',
    Bucket='pythonbucket1'
)
{'ResponseMetadata': {'RequestId': '9dad4487-0e30-1dbc-a754-06bdfcde1d5e',
  'HostId': '3d5c05376530a2eb49e3e90576f83c5b',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'date': 'Mon, 14 Dec 2020 01:51:30 GMT',
   'x-amz-request-id': '9dad4487-0e30-1dbc-a754-06bdfcde1d5e',
   'location': 'http://pythonbucket1.s3-region1.admin-tech.tokyo',
   'x-amz-id-2': '3d5c05376530a2eb49e3e90576f83c5b',
   'content-length': '0',
   'server': 'CloudianS3'},
  'RetryAttempts': 0},
 'Location': 'http://pythonbucket1.s3-region1.admin-tech.tokyo'}

3. 属性を指定したバケット作成例②

以下の例では、create_bucket() の引数に作成するバケット名( Bucket=’bucket2’ )とバケットのACL( ACL=’private’ )、およびロケーションコンストレイント ( CreateBucketConfiguration={‘LocationConstraint’: ‘region1’} )を設定してバケットを作成しています。

test3.py
import boto3

client = boto3.client(
    's3',
    endpoint_url='https://xxx.yyy.com'
)

# バケットの新規作成
client.create_bucket(
    ACL='private',
    Bucket='pythonbucket1',
    CreateBucketConfiguration={
        'LocationConstraint': 'region1'
    }
)
{'ResponseMetadata': {'RequestId': '9dad448a-0e30-1dbc-a754-06bdfcde1d5e',
  'HostId': '3d5c05376530a2eb49e3e90576f83c5b',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'date': 'Mon, 14 Dec 2020 01:51:31 GMT',
   'x-amz-request-id': '9dad448a-0e30-1dbc-a754-06bdfcde1d5e',
   'location': 'http://pythonbucket1.s3-region1.admin-tech.tokyo',
   'x-amz-id-2': '3d5c05376530a2eb49e3e90576f83c5b',
   'content-length': '0',
   'server': 'CloudianS3'},
  'RetryAttempts': 0},
 'Location': 'http://pythonbucket1.s3-region1.admin-tech.tokyo'}

datetime 型で戻される作成日付(CreationDate)を、Python 標準モジュールに含まれる strftime()を使って見やすいように整形して出力しています。

4. まとめ

Python(boto3)で、いろんなパターンでバケットを新規作成してみました。

次回も、Pythonでオブジェクトストレージ/Cloudianをいろいろ操作していきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0