<CF_HOME>/cfusion/bin に移動します。
概要
Amazon S3(Amazon Simple Storage Service)は、Web サービスインターフェイスを通じてオブジェクトストレージを提供する、Amazon Web Services(AWS)が提供するサービスです。Amazon S3 は、あらゆるタイプのオブジェクトを保存するのに使用できます。インターネットアプリケーション、バックアップと回復、障害回復、データアーカイブ、分析用データレイク、ハイブリッドクラウドストレージのためのストレージなどに使用できます。
Amazon S3 は、データをバケット内のオブジェクトとして保存します。オブジェクトは、ファイルとオプションでそのファイルを説明するメタデータで構成されます。
Amazon S3 にオブジェクトを保存するには、保存するファイルをバケットにアップロードします。ファイルをアップロードする際に、オブジェクトおよび任意のメタデータに対する権限を設定できます。
バケットは、オブジェクトのルートです。1 つまたは複数のバケットを持つことができます。各バケットについて、(誰がバケットのオブジェクトを作成、削除およびリスト表示できるか)アクセスを制御したり、バケットおよびそのオブジェクトへのアクセスログを表示したり、Amazon S3 がバケットおよびそのコンテンツを保存する地理的地域を選択したりできます。
詳しくは、Amazon S3 ストレージを参照してください。
ColdFusion と S3
Amazon S3 ストレージサービスは、いつでも、Web 上のどこからでも、任意の量のデータを保存および取得するために使用されます。ColdFusion(2016 リリース)および ColdFusion(2018 リリース)では、タグや、ファイルおよびディレクトリを入出力として取る関数を使用して、この機能をサポートしました。ColdFusion(2021 リリース)では、この機能をさらに拡張して、マルチクラウドサービスをサポートします。
S3 ストレージを次のシナリオで使用できます。
- S3 にストレージを作成する
- 作成、アップロード、リスト表示、削除などのルート操作を実行する
- バケットにポリシーを設定する
- ファイルを一括でアップロードする
- バケット間でファイルをコピーする
- ストレージ内のファイルの様々なバージョンを作成する
- オブジェクトにライフサイクルルールを設定する
- オブジェクトにタグを追加する
- S3 領域をセキュリティ保護する
- ファイルを並行してアップロードまたはダウンロードする
はじめに
awss3 パッケージのインストール
Zip インストーラーを使用する場合に限り、Adobe ColdFusion(2021 リリース)はモジュール化されています。デフォルトでは、AWS S3 のモジュールはインストールされません。最初の手順は、ColdFusion の S3 パッケージをインストールすることです。
注意:GUI インストーラーを使用する場合、S3 のパッケージは awss3 という名前になります。
SNS のパッケージは awss3 という名前になります。
awss3 パッケージをインストールするには、ColdFusion Administrator のパッケージマネージャーページを使用するか、以下の手順に従います。
-
-
次のコマンドを入力します。
- Windows:cfpm.bat
- Linux:cfpm.sh
-
コマンド install awss3 を入力します。
AWS S3 パッケージがインストールされるまで待ちます。
詳しくは、ColdFusion パッケージマネージャーを参照してください。
AWS S3 にアクセスするための資格情報の取得
AWS を操作する場合、資格情報を検証し、リクエストしているリソースにアクセスするための権限を持っているかどうかをチェックするために、AWS セキュリティ資格情報を指定します。
AWS は、セキュリティ資格情報を使用して、リクエストを認証および承認します。
AWS アクセスキー ID および AWS シークレットアクセスキーを取得する必要があります。詳しくは、アクセスキーを参照してください。
クラウドサービス資格情報および設定の追加
ColdFusion(2021 リリース)には、様々なクラウドサービスにアクセスするためのオブジェクトを作成するためにハンドルを提供するメソッド、getCloudService() があります。
サービスハンドルのシンタックスを次に示します。
service=getCloudService(cloudCred,cloudConfig)
- cloudCred:クラウドサービスの資格情報を定義します。構造体または文字列です(資格情報エイリアスとも呼ばれます)。
- cloudConfig:クラウドサービス設定の詳細を定義します。構造体または文字列です(設定エイリアスとも呼ばれます)。
AWS 資格情報を獲得したら、次のいずれかの方法でこれらの資格情報を宣言する必要があります。それによって初めて、これらの資格情報を使用して S3 オブジェクトを作成でき、それからそのオブジェクトを使用して様々な S3 メソッドを呼び出すことができます。
getCloudService の結果を共有スコープ(例:アプリケーションスコープ)に格納し、そのオブジェクトを再利用する必要があります。
ColdFusion Administrator
資格情報の設定
ColdFusion Administrator で、データとサービス/クラウド資格情報をクリックします。
エイリアスは、クラウドサービスおよびその設定の詳細の名前付き表現です。ColdFusion Administrator を使用して設定エイリアスを設定できます。
詳細を入力したら、「資格情報を追加」をクリックします。
設定オプションの設定
ColdFusion Administrator で、「データとサービス/クラウド設定」をクリックします。
設定エイリアス、ベンダー、サービスの名前など、次の詳細を入力します。
設定オプションを追加した後、さらにいくつかのオプションを追加する必要がある場合があります。次に表示される画面で追加できます。場合によって追加する必要があるオプションを次に示します。
- リクエスト設定
- クライアント設定
- プロキシ設定
- 再試行ポリシー
- 再試行条件
詳しくは、クラウド設定オプションを参照してください。
オブジェクトの作成
S3 資格情報および設定オプションのエイリアスを作成したら、getCloudService API を使用してオブジェクトを作成し、次のコードを CFM に含めることができます。
s3Object= getCloudService("s3Cred", "s3Conf")
Application.cfc
Application.cfc で S3 資格情報および設定オプションを指定できます。次に例を示します。
component { this.name="S3_app"; void function onApplicationStart(){ application.awsCred = { "alias" : "aws_std_queue", "vendorName" : "AWS", "region" : "us-east-2", "secretAccessKey" : "xxxxxxxxxxxxxxxxx", "accessKeyId" : "xxxxxxxxxxxxxxxx" } application.s3Conf = { "serviceName" : "S3" } } }
オブジェクトの作成
s3Object = getCloudService(application.awsCred, application.s3Conf)
CFM ページ上
CFM ページでは、次に示す 4 つの方法のいずれかで S3 資格情報および設定オプションを指定できます。
資格情報エイリアスおよび設定エイリアス
S3 資格情報および設定オプション用のエイリアスを作成したら、次に示すように、getCloudService ハンドルでそれらのエイリアスを使用できます。
<cfscript> // ColdFusion Administrator で資格情報エイリアスと設定エイリアスを定義 s3=getCloudService("awsCred","s3Conf") // 以下にコードを記述 ...........</cfscript>
資格情報エイリアスおよび設定オプションの構造体
<cfscript> // 資格情報エイリアスとサービス設定構造体を使用 s3Conf = { "alias":"s3Conf", "serviceName" : "S3", "clientOverrideConfig":{ "retryPolicy":{ "numRetries":4 } }, "httpClientConfig":{ "maxConnections":50 } } s3= getCloudService("s3Cred", s3Conf) // 以下にコードを記述 .....................</cfscript>
設定エイリアスおよび資格情報の構造体
<cfscript> // 設定エイリアスとサービス資格情報構造体を使用 // s3 資格情報 s3Creds={ "vendorName":"AWS", "alias": "s3Cred", "region":"us-east-2", "accessKeyId": "access key", "secretAccessKey": "secret access" } s3= getCloudService(s3Creds, "s3Conf") // 以下にコードを記述 .....................................</cfscript>
資格情報と設定オプションの両方の構造体
<cfscript> // クラウドの資格情報と設定の構造体を使用 s3Cred={ "vendorName":"AWS", "alias": "s3_cred_alias", "region":"us-east-2", "accessKeyId": "access key", "secretAccessKey": "secret access key" } s3Conf = { "alias":"s3_conf_alias", "serviceName" : "S3", "clientOverrideConfig":{ "retryPolicy":{ "numRetries":4 } }, "httpClientConfig":{ "maxConnections":50 } } sqs = getCloudService(s3Cred, s3Conf ) // 以下にコードを記述 ...................................................................</cfscript>
Admin API
また、Admin API を使用して SQS 資格情報および設定オプションを追加することもできます。資格情報および設定を追加するためのメソッドは、cloud.cfc で使用できます。
次に、メソッド addCredential(struct credential) および addServiceConfig(struct config) の使用例を示します。
資格情報の追加
<cfscript> // Administrator コンポーネントのオブジェクトを作成して login メソッドを呼び出す adminObj = createObject("component","cfide.adminapi.administrator") adminObj.login("admin") // クラウドコンポーネントのオブジェクトを作成 cloudObj = createObject("component","cfide.adminapi.cloud") // 資格情報構造体を定義 credentialStruct={ "alias" : "CredS3", "vendorName" : "AWS", "region" : "us-east-2", "secretAccessKey" : "secret access key", "accessKeyId" : "access key" } // 資格情報の credentialStruct を追加 try{ cloudObj.addCredential(credentialStruct) writeOutput("Credentials added successfully") } catch(any e){ writeDump(e) } </cfscript>
設定の追加
<cfscript> // Administrator コンポーネントのオブジェクトを作成して login メソッドを呼び出す adminObj = createObject("component","cfide.adminapi.administrator") adminObj.login("admin") // クラウドコンポーネントのオブジェクトを作成 cloudObj = createObject("component","cfide.adminapi.cloud") // 設定構造体を定義 configStruct={ "alias":"ConfS3", "serviceName":"S3", "clientOverrideConfig":{ "retryPolicy":{ "numRetries":4 } }, "httpClientConfig":{ "maxConnections":50 } } // 設定の configStruct を追加 try{ cloudObj.addServiceConfig(configStruct) writeOutput("Configuration service added successfully") } catch(any e){ writeDump(e) } </cfscript>
CFSetup
CFSetup 設定ユーティリティを使用して S3 の資格情報と設定をセットアップすることもできます。
クラウド資格情報の追加
- add cloudcredential credentialAlias=s3cred accesskeyid=<access> secretaccesskey=<secret> region=ap-southeast-1 vendorname=AWS
資格情報の設定
- set cloudcredential s3cred secretaccesskey=awssecret
クラウド設定の追加
- add cloudconfiguration serviceName=S3 alias=s3Config
設定の設定
- set cloudconfiguration conf1 alias=conf2
ルートの作成
ルートオブジェクトを取得します。ルートが存在しない場合は、ルートが作成されます。
- Amazon S3 - はい
- Azure - はい
- マルチクラウド - はい
シンタックス
root(bucketname,createIfNotExists)
パラメーター
パラメーター |
説明 |
---|---|
bucketName |
作成するバケットの名前。 |
createIfNotExists |
true または false。バケットが存在しない場合は、作成されます。 |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) try{ storageService.root("bucket.001","true") writeOutput("Bucket created successfully") } catch(any e){ writeDump(e) } </cfscript>
ルートの作成 - 追加のパラメーター
追加のパラメーターを使用してルートオブジェクトを取得します。
- Amazon S3 - はい
- Azure - はい
- マルチクラウド - はい
シンタックス
createRoot(requestParameters)
パラメーター
パラメーター |
説明 |
---|---|
bucketName |
作成するバケットの名前。 |
objectLockEnabledForBucket |
yes または no。バケットのオブジェクトロックが有効かどうかを識別します。詳しくは、オブジェクトロックを参照してください。 |
acl |
Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。 有効な値は、次のとおりです。
詳しくは、AWS の ACL を参照してください。 |
権限を付与する変数 |
Amazon S3 が ACL. でサポートする権限。 有効な値は、次のとおりです。
詳しくは、アクセス許可を参照してください。 |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.002", "objectLockEnabledForBucket" : true } // ルートを作成 myobj=storageService.createRoot(createBucketRequest) writeDump(myobj) </cfscript>
バケットの作成
Amazon S3 にデータをアップロードするには、いずれかの AWS リージョンでバケットオブジェクトを取得する必要があります。その後、任意の数のオブジェクトをバケットにアップロードできます。
詳しくは、S3 バケットを参照してください。
シンタックス
bucket(bucketName,createIfNotExists)
パラメーター
パラメーター |
説明 |
---|---|
bucketName |
作成するバケットの名前。 |
createIfNotExists |
true または false。バケットが存在しない場合は、作成されます。 |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) try{ storageService.bucket("bucket.002","true") writeOutput("Bucket created successfully") } catch(any e){ writeDump(e) } </cfscript>
バケットの作成 - 追加のパラメーター
追加のパラメーターを使用して S3 でバケットを作成します。
シンタックス
createBucket(parameterStruct)
パラメーター
パラメーター |
説明 |
---|---|
bucketName |
作成するバケットの名前。 |
objectLockEnabledForBucket |
yes または no。バケットのオブジェクトロックが有効かどうかを識別します。詳しくは、オブジェクトロックを参照してください。 |
acl |
Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。 有効な値は、次のとおりです。
詳しくは、AWS の ACL を参照してください。 |
権限を付与する変数 |
Amazon S3 が ACL. でサポートする権限。 有効な値は、次のとおりです。
詳しくは、アクセス許可を参照してください。 |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // bucketList=storageService.listAll() // すべてのバケットをリストアップ // writeDump(bucketList) // abort; createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.three.demo", "objectLockEnabledForBucket" : true } // バケットを作成 try{ myobj=storageService.createBucket(createBucketRequest) writeOutput("Bucket created successfully") writeDump(myobj) } catch (any e){ writeOutput("Failed to create the bucket") writeDump(e) } </cfscript>
すべてのバケットのリスト表示
ストレージアカウントのバケットのリストを取得できます。また、バケット内のオブジェクトのリストを取得することもできます。
- Amazon S3 - はい
- Azure - はい
- マルチクラウド - はい
シンタックス
listAll(parameterStruct)
listAll()
パラメーター
パラメーター |
説明 |
---|---|
delimiter |
キーをグループ化するための文字。 |
encodingType |
応答のオブジェクトキーをエンコードし、使用するエンコード方法を指定します。 |
marker |
バケットのオブジェクトをリスト表示する際に、開始に使用するキー。 |
maxKeys |
応答で返されるキーの最大数。 |
します |
指定された接頭辞で始まるキーに対する応答を制限します。 |
requestpayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。有効な値は、REQUESTER です。 |
詳しくは、リクエストパラメーターを参照してください。
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // すべてのバケットをリストアップ bucketList=storageService.listAll() writeOutput("List of buckets") writeDump(bucketList) </cfscript>
バケットの削除
空のバケットを削除したり、AWS マネジメントコンソールを使用している場合に、オブジェクトを含むバケットを削除したりできます。オブジェクトを含むバケットを削除する場合、そのバケット内のすべてのオブジェクトは、完全に削除されます。
詳しくは、DeleteObjects を参照してください。
- Amazon S3 - はい
- Azure - はい
- マルチクラウド - はい
シンタックス
delete(parameterStruct)
delete(bucketName)
パラメーター
パラメーター |
説明 |
---|---|
bucketName |
削除するバケットの名前。 |
forcedDelete |
true または false。オブジェクトを含むバケットを強制的に削除します。 |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.name", "objectLockEnabledForBucket" : true } storageService.createBucket(createBucketRequest) // バケットを削除 deleteBucketRequest = { "bucket" : "bucket.name", "forcedDelete" : "true" // デフォルトは false } try{ myobj=storageService.delete(deleteBucketRequest) writeOutput("Bucket deleted successfully") writeDump(myobj) } catch (any e){ writeOutput("Unable to delete the bucket") writeDump(e) } </cfscript>
ファイルのアップロード
バケットにファイルをアップロードできます。uploadFile 関数では、引数として、次の値を含む構造体を渡します。
詳しくは、公式ドキュメントを参照してください。
シンタックス
uploadFile(parameterStruct)
パラメーター
パラメーター | 説明 | 必須 |
---|---|---|
srcFile |
バケットにアップロードしたいファイルのパス。 | はい |
key |
オブジェクトの一意の識別子。 | はい |
acl |
オブジェクトに適用するための ACL。詳しくは、既定 ACL を参照してください。有効な値を次に示します。
|
いいえ |
cacheControl |
ここで定義されているように、キャッシュ動作を指定します。 | いいえ |
contentDisposition |
ここで定義されているように、オブジェクトのコンテンツ形式を指定します。 | いいえ |
contentEncoding |
ここで定義されているように、オブジェクトのエンコーディングタイプを指定します。 | いいえ |
contentLanguage |
アップロードするオブジェクトの言語。 | いいえ |
contentLength |
オブジェクトのサイズ(バイト単位)。 | いいえ |
validateContentMD5 |
true または false。メッセージの Base64 でエンコードされた 128 bit MD5 ダイジェスト(ヘッダーを除く)。 |
いいえ |
contentType |
ここで定義されているコンテンツの形式。 | いいえ |
expires |
オブジェクトをこれ以上キャッシュできない日付および時刻。 |
いいえ |
grantFullControl |
被付与者に、オブジェクトに対する READ、READ_ACP および WRITE_ACP 権限を付与します。 |
いいえ |
grantRead |
被付与者にオブジェクトデータの読み取りのみを許可します。 |
いいえ |
grantWrite |
被付与者にオブジェクトデータへの書き込みを許可します。 |
いいえ |
grantReadACP |
被付与者にオブジェクト ACL の読み取りを許可します。 |
いいえ |
grantWriteACP |
被付与者にオブジェクトの ACL への書き込みを許可します。 |
いいえ |
metadata |
使用するオブジェクトメタデータ。 | いいえ |
serverSideEncryption |
使用されるサーバー側暗号化アルゴリズム。 |
いいえ |
storageClass |
有効な値は、次のとおりです。
詳しくは、S3 ストレージクラスを参照してください。 |
いいえ |
websiteRedirectLocation |
バケットが Web サイトとして設定されている場合は、同じバケットの別のオブジェクトまたは外部 URL へのリダイレクトリクエストを指定します。 |
いいえ |
sseCustomerAlgorithm |
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。 |
いいえ |
sseCustomerKey |
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。 |
いいえ |
ssekmsKeyId |
AWS Key Management Service(AWS KMS)の ID を指定します。 |
いいえ |
ssekmsEncryptionContext |
オブジェクトの暗号化に使用する、AWS KMS の暗号化コンテキストを指定します。 |
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 |
いいえ |
tagging |
オブジェクトのタグセット。キーと値のペアの構造体である必要があります。 |
いいえ |
objectLockMode |
このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。
|
いいえ |
objectLockRetainUntilDate |
このオブジェクトのオブジェクトロックの期限にする日付および時刻。 |
いいえ |
objectLockLegalHoldStatus |
指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。
|
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) //writeOutput(ExpandPath('./')) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.name", "objectLockEnabledForBucket" : true } bucketObj=storageService.createBucket(createBucketRequest) // オブジェクトをアップロード uploadStruct = { "srcFile" : "#ExpandPath('./')#/file.txt", "key" : "key12", "metadata":{ "place":"London", "deployment":"Testing" } } try{ uploadResponse=bucketObj.uploadFile(uploadStruct) writeOutput("Object uploaded successfully") writeDump(uploadResponse) } catch (any e){ writeOutput("Could not upload the object") writeDump(e) } </cfscript>
ファイルのダウンロード
S3 バケットからファイルをダウンロードできます。ファイルをダウンロードするには、downloadToFile 関数を使用します。引数として、次の値を含む構造体を渡します。
詳しくは、公式ドキュメントを参照してください。
シンタックス
downloadToFile(parameterStruct)
パラメーター
パラメーター | 説明 | 必須 |
---|---|---|
destinationFile |
ダウンロードしたい、オブジェクトを含むファイルのパス。 | はい |
key |
オブジェクトの一意の識別子。 | はい |
cacheControl |
オブジェクトの Cache-Control ヘッダーを設定します。 | いいえ |
contentDisposition |
応答の Content-Disposition ヘッダーを設定します。 |
いいえ |
contentEncoding |
応答の Content-Encoding ヘッダーを設定します。 |
いいえ |
contentLanguage |
応答の Content-Language ヘッダーを設定します。 |
いいえ |
contentType |
応答の Content-Type ヘッダーを設定します。 |
いいえ |
expires |
応答の Response ヘッダーを設定します。 |
いいえ |
versionId |
オブジェクトの特定のバージョンを参照します。 | いいえ |
sseCustomerAlgorithm |
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。 |
いいえ |
sseCustomerKey |
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。 |
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.four", "objectLockEnabledForBucket" : true } bucketObj=storageService.createBucket(createBucketRequest) // オブジェクトをアップロード uploadStruct = { "srcFile" : "#ExpandPath('./')#/file.txt", "key" : "key22", "metadata":{ "filename":"file.txt", "place":"bangalore", "category":"finance" } } bucketObj.uploadFile(uploadStruct) // ファイルをダウンロード downloadStruct = { "destinationFile" : "file.txt", "key" : "key22" } try{ downloadResponse=bucketObj.downloadToFile(downloadStruct) writeOutput("Object downloaded successfully") writeDump(downloadResponse) } catch (any e){ writeOutput("Failed to download object") writeDump(e) } </cfscript>
オブジェクトのコピー
バケット間でオブジェクトをコピーできます。すべてのコピーリクエストは、認証されている必要があります。また、ソースオブジェクトに対する read アクセス権および宛先バケットに対する write アクセス権が必要です。
詳しくは、CopyObject を参照してください。
シンタックス
copy(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
sourceBucket |
オブジェクトのコピー元のバケット。 |
はい |
sourceKey |
オブジェクトに関連付けられたキー。 |
はい |
sourceVersionId |
オブジェクトに関連付けられていたバージョン ID。 |
いいえ |
key |
オブジェクトの.宛先キー。 |
はい |
storageClass |
詳しくは、S3 ストレージクラスを参照してください。有効な値は、GLACIAR です。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // 2 つのバケットを作成 createBucketRequest1 = { "acl":"PRIVATE", "bucket" : "cf.source.bucket.1", "objectLockEnabledForBucket" : true } createBucketRequest2 = { "acl":"PRIVATE", "bucket" : "cf.dest.bucket.1", "objectLockEnabledForBucket" : true } // ソースバケット source_obj=storageService.createBucket(createBucketRequest1) // 宛先バケット dest_object=storageService.createBucket(createBucketRequest2) // アップロードファイル構造体 uploadStruct = { "srcFile" : "#ExpandPath('./')#/file.txt", "key" : "key12" } // ファイルをソースバケットにアップロード uploadResponse=source_obj.uploadFile(uploadStruct) // ファイル構造体をコピー copyRequest = { "sourceBucket": "cf.source.bucket.1", "sourceKey" : "key12", "key" : "destKey" } copyResponse=dest_object.copy(copyRequest); objList=dest_object.listAll() writeDump(objList) </cfscript>
バケットへのポリシーの適用
Amazon S3 バケットポリシーを Amazon S3 バケットに適用します。
詳しくは、PutBucketPolicy を参照してください。
シンタックス
putPolicy(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
confirmRemoveSelfBucketAccess |
true または false。このパラメーターを true に設定して、今後このバケットポリシーを変更する権限を削除することを確認します。 |
いいえ |
policy |
バケットに強制されるポリシー。詳しくは、S3 ポリシーを参照してください。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) bucketList=storageService.listAll() //writeDump(bucketList) rootObj=storageService.bucket("bucket.policy","true") policy = { "Id": "Policy1571390473326", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1574139965216", "Action": [ "s3:GetBucketAcl" ], "Effect": "Allow", "Resource": "bucket.policy", "Principal": "*" } ] } policyRequest = { "policy" : policy } rootObj.putPolicy(policyRequest); writedump(rootObj.getPolicies()) </cfscript>
ポリシーの削除
バケットに適用されたポリシーを削除します。
詳しくは、DeleteBucketPolicy を参照してください。
シンタックス
deletePolicies()
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) bucketList=storageService.listAll() //writeDump(bucketList) rootObj=storageService.bucket("bucket.policy","true") policy = { "Id": "Policy1571390473326", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1574139965216", "Action": [ "s3:GetBucketAcl" ], "Effect": "Allow", "Resource": "bucket.policy", "Principal": "*" } ] } policyRequest = { "policy" : policy } rootObj.putPolicy(policyRequest); writedump(rootObj.getPolicies()) // ポリシーを削除 deletePolicyResponse=rootObj.deletePolicies() writeDump(deletePolicyResponse) </cfscript>
ポリシーの取得
指定されたバケットのポリシーを返します。
詳しくは、GetBucketPolicy を参照してください。
シンタックス
getPolicies()
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) bucketList=storageService.listAll() //writeDump(bucketList) rootObj=storageService.bucket("bucket.policy","true") policy = { "Id": "Policy1571390473326", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1574139965216", "Action": [ "s3:GetBucketAcl" ], "Effect": "Allow", "Resource": "bucket.policy", "Principal": "*" } ] } policyRequest = { "policy" : policy } rootObj.putPolicy(policyRequest); writedump(rootObj.getPolicies()) // ポリシーを削除 deletePolicyResponse=rootObj.deletePolicies() writeDump(deletePolicyResponse) </cfscript>
バージョニング
バージョニングは、同じバケットにオブジェクトの複数のバリアントを維持する手段です。バージョニングを使用すると、Amazon S3 バケットに保存された各オブジェクトの各バージョンを保持、取得および復元できます。バージョニングでは、意図しないユーザーアクションおよびアプリケーションエラーを簡単に回復できます。
例えば、1 つのバケットで、同じキーを持つ 2 つオブジェクトを持つことができますが、バージョン ID は異なります。
AWS S3 バージョン:未バージョニングバケットおよびバージョニング対応バケットでのオブジェクトのアップロードは同じですが、バージョニング対応バケットの場合、Amazon S3 はバージョン番号を割り当てます。そうでない場合、バージョン番号は null です。バージョニングの有効化および中断は、バケットレベルで行われます。
バージョニングの有効化
既存のバケットのバージョニング状態を設定します。バージョニング状態を設定するには、バケット所有者である必要があります。
次のいずれかの値でバージョニング状態を設定できます。
- Enabled
- Suspended
詳しくは、PutBucketVersioning を参照してください。
シンタックス
enableVersioning(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
mfa |
認証デバイスのシリアル番号、スペース、認証デバイスに表示された値の組み合わせ。 mfa の形式を次に示します。 "mfa":"arn:aws:iam::0123456789:mfa/username" |
いいえ |
mfaDelete |
バケットバージョニング設定で MFA Delete が有効かどうかを指定します。有効な値は、次のとおりです。
|
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.getstatus", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バージョニングを有効化 bucketObj.enableVersioning() // バージョンのステータスを取得 versionStatus=bucketObj.getVersioningStatus() writeDump(versionStatus) </cfscript>
バージョニング状態の取得
バケットのバージョニング状態を取得します。
シンタックス
getVersioningStatus()
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.getstatus", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バージョニングを有効化 bucketObj.enableVersioning() // バージョンのステータスを取得 versionStatus=bucketObj.getVersioningStatus() writeDump(versionStatus) </cfscript>
すべてのバージョンのリスト表示
バケットのオブジェクトのすべてのバージョンに関するメタデータを返します。
詳しくは、ListObjectVersions を参照してください。
シンタックス
listAllVersions(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
delimiter |
キーをグループ化するための文字。 |
いいえ |
encodingType |
応答のオブジェクトキーのエンコードを Amazon S3 にリクエストして、使用するエンコード方法を指定します。 |
いいえ |
marker |
リスト表示を開始するオブジェクトバージョン。 |
いいえ |
maxKeys |
応答で返されるキーの最大数を設定します。 |
いいえ |
します |
指定された接頭辞で始まるキーのみを選択します。 |
いいえ |
keyMarker |
バケットのオブジェクトをリスト表示する際に、開始に使用するキー。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.listversions", "objectLockEnabledForBucket" : true } // バケットを作成 myobj=storageService.createBucket(createBucketRequest) // ファイルアップロード構造体を定義 uploadStruct1 = { "srcFile" : "#ExpandPath('./')#/file1.txt", "key" : "key1" } uploadStruct2 = { "srcFile" : "#ExpandPath('./')#/file2.txt", "key" : "key122" } uploadStruct3 = { "srcFile" : "#ExpandPath('./')#/file3.txt", "key" : "key123" } uploadStruct4 = { "srcFile" : "#ExpandPath('./')#/file1.txt", "key" : "key124" } uploadResponse1=myobj.uploadFile(uploadStruct1); uploadResponse2=myobj.uploadFile(uploadStruct2); uploadResponse3=myobj.uploadFile(uploadStruct3); uploadResponse4=myobj.uploadFile(uploadStruct4); listAllVersionsRequest={ "prefix" : "key12" } // すべてのバージョンをリストアップ listVersion=myobj.listAllVersions(listAllVersionsRequest) writeDump(listVersion) </cfscript>
バージョニングの中断
バケットのオブジェクトのバージョニングを無効にします。
詳しくは、PutBucketVersioning を参照してください。
シンタックス
suspendVersioning(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
mfa |
認証デバイスのシリアル番号、スペース、認証デバイスに表示された値の組み合わせ。 mfa の形式を次に示します。 "mfa":"arn:aws:iam::0123456789:mfa/username" |
いいえ |
mfaDelete |
MFA Delete が有効か無効かを指定します。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.suspendversioning", // バージョニングを中断するには、バケットのオブジェクトロックを無効化 "objectLockEnabledForBucket" : false } // バケットを作成 myobj=storageService.createBucket(createBucketRequest) // バケットでのバージョニングを有効化 myobj.enableVersioning(); // バージョンのステータスを取得 versionStatus1=myobj.getVersioningStatus(); writeDump(versionStatus1) // バージョニングを中断 myobj.suspendVersioning(); versionStatus2=myobj.getVersioningStatus(); writeDump(versionStatus2) </cfscript>
S3 ACL バケット操作
Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。各バケットおよびオブジェクトには、ACL がサブリソースとして添付されます。これは、どの AWS アカウントまたはグループがアクセス権を付与されているかとアクセス権のタイプを定義します。リソースに対してリクエストが受信されると、Amazon S3 では、対応する ACL が確認され、リクエスターに必要なアクセス権限があることが検証されます。
バケットまたはオブジェクトを作成する場合、Amazon S3 では、リソース所有者にリソースへのフルコントロール権限を付与する、デフォルト ACL が作成されます。
詳しくは、S3 ACL を参照してください。
putBucketAcl
アクセスコントロールリスト(ACL)を使用して、既存のバケットに対する権限を設定します。
詳しくは、ACL の使用を参照してください。
バケットの ACL を設定するには、WRITE_ACP 権限を持っている必要があります。
シンタックス
putBucketAcl(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
acl |
Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。 有効な値は、次のとおりです。
詳しくは、AWS の ACL を参照してください。 |
いいえ |
権限を付与する変数 |
Amazon S3 が ACL. でサポートする権限。 有効な値は、次のとおりです。
詳しくは、アクセス許可を参照してください。 |
いいえ |
例
<cfscript> storageService = getCloudService(this.s3Cred,this.s3Conf) createBucketRequest1 = { "bucket" : "cfqa.003" } rootObj = storageService.createRoot(createBucketRequest1); putBucketAclRequest = { "acl" : "PRIVATE" } putBucketAclResponse=rootObj.putBucketAcl(putBucketAclRequest); writeDump(putBucketAclResponse) </cfscript>
権限付与の例を示します。
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest1 = { "bucket" : "cfqa.003" } rootObj = storageService.createRoot(createBucketRequest1) putBucketAclRequest = { "grantFullControl": "emailAddress=john@example.com", // "grantFullControl": "id=f1db27629293ee8354a2874de1959b39bec20ffe98417b931fb381f97007cf97" "grantReadACP" : "uri=http://acs.amazonaws.com/groups/s3/LogDelivery" } putBucketAclResponse=rootObj.putBucketAcl(putBucketAclRequest); writeDump(putBucketAclResponse) </cfscript>
getBucketAcl
この関数を使用して、バケットの ACL のリストを取得します。
詳しくは、getBucketAcl 公式ドキュメントを参照してください。
シンタックス
getBucketAcl()
例
<cfscript> storageService = getCloudService(this.s3Cred,this.s3Conf) createBucketRequest1 = { "bucket" : "cfqa.004", "grantFullControl": "uri=http://acs.amazonaws.com/groups/global/AuthenticatedUsers" } rootObj = storageService.createRoot(createBucketRequest1); getBucketAclResponse=rootObj.getBucketAcl() writeDump(getBucketAclResponse) </cfscript>
putObjectAcl
この関数は、ACL サブリソースを使用して、バケットに既に存在しているオブジェクトに対するアクセスコントロールリスト(ACL)権限を設定します。
putObjectAcl には、構造体に追加の属性 "key": "object_key" があります。
詳しくは、公式ドキュメントを参照してください。
シンタックス
putObjectAcl(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
acl |
Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。 有効な値は、次のとおりです。
詳しくは、AWS の ACL を参照してください。 |
いいえ |
権限を付与する変数 |
Amazon S3 が ACL. でサポートする権限。 有効な値は、次のとおりです。
詳しくは、アクセス許可を参照してください。 |
いいえ |
key |
操作のためのキー。 |
はい |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "bucket" : "bucket.putobjectacl.demo" } bucketObj = storageService.createBucket(createBucketRequest) // オブジェクトをアップロード uploadStruct = { "srcFile" : "#ExpandPath('./')#/s3-notes.pdf", "key" : "key12" } bucketObj.uploadFile(uploadStruct) // オブジェクトに ACL を設定 putObjectAclRequest = { "key" : "key12", "acl" : "PRIVATE" } try{ objectAclResponse=bucketObj.putObjectAcl(putObjectAclRequest) writeOutput("ACL applied successfully on the object") writeDump(objectAclResponse) } catch(any e){ writeOutput("Unable to apply ACL on the object") writeDump(e) } putObjectAclResponse=bucketObj.GetObjectAcl("key12") writeDump(putObjectAclResponse) </cfscript>
getObjectAcl
オブジェクトのアクセスコントロールリスト(ACL)を返します
この操作を行うには、オブジェクトに対する READ_ACP アクセス権を持っている必要があります。
シンタックス
getObjectAcl(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
key |
ACL 情報を取得するためのオブジェクトのキー。 |
はい |
versionId |
オブジェクトの特定のバージョンを参照します。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "bucket" : "bucket.putobjectacl.demo" } bucketObj = storageService.createBucket(createBucketRequest) // オブジェクトをアップロード uploadStruct = { "srcFile" : "#ExpandPath('./')#/s3-notes.pdf", "key" : "key12" } bucketObj.uploadFile(uploadStruct) // オブジェクトに ACL を設定 putObjectAclRequest = { "key" : "key12", "acl" : "PRIVATE" } try{ objectAclResponse=bucketObj.putObjectAcl(putObjectAclRequest) writeOutput("ACL applied successfully on the object") writeDump(objectAclResponse) } catch(any e){ writeOutput("Unable to apply ACL on the object") writeDump(e) } putObjectAclResponse=bucketObj.getObjectAcl("key12") writeDump(putObjectAclResponse) </cfscript>
ライフサイクルルール
有効期間での AWS S3 によるオブジェクトの管理方法を定義するライフサイクルルール。次の 2 種類のアクションがあります。
- Transition アクション — オブジェクトがいつ別のストレージクラスに以降するかを定義します。
- Expiration アクション — オブジェクトの有効期限がいつ切れるかを定義します。Amazon S3 は、ユーザーに代わって、期限切れのオブジェクトを削除します。
明確に定義されたライフサイクルを持つオブジェクトのライフサイクル設定ルールを定義します。次に例を示します。
- 一部のドキュメントには、限られた期間、頻繁にアクセスされるものがあります。その後、ほとんどアクセスされなくなります。ある時点では、リアルタイムアクセスは不要かもしれませんが、組織や規制によっては、特定の期間、アーカイブする必要があることがあります。その後、それらを削除できます。
- 主にアーカイブ目的で、あるタイプのデータを Amazon S3 にアップロードする場合があります。例えば、デジタルメディア、財務および医療レコード、生のゲノムシーケンスデータ、長期間のデータベースバックアップ、法規制の順守のために保持する必要があるデータをアーカイブすることがあります。
- 定期的なログをバケットにアップロードする場合、1 週間または 1 か月の間、アプリケーションがそのログを必要とすることがあります。その後、それらを削除したほうがいいでしょう。
setRules
setRules 関数を使用して、バケットのオブジェクトに対するライフサイクルルールを設定できます。この関数は、次の構造体を引数として受け入れます。
"rules" : [ { "id" : "rule1", "prefix" : "a/b", "lifecycleRuleFilter" : { "prefix" : "", "tagging" : { "key": "", "value" : "" }, "lifecycleRuleAndOperator" : { "prefix" : "", "tagging" : [{ "key": "", "value" : "" }] } }, "status" : "ENABLED", "expiration" : { "date" : "YYYY-MM-DD", "days" : 3 }, "noncurrentVersionExpirationDays" : 30, "noncurrentVersionTransitions" : [ { "days" : 35, "storageClass" : "GLACIER" }], "abortIncompleteMultipartUploadInDays" : 7, "transitions" : [ { "days" : 90, "storageClass" : "ONEZONE_IA" } ] } ]
ColdFusion(2021 リリース)では、次はサポートされていません。将来のアップデートでサポートされる予定です。
"lifecycleRuleFilter" : { "prefix" : "", "tagging" : { "key": "", "value" : "" }, "lifecycleRuleAndOperator" : { "prefix" : "", "tagging" : [{ "key": "", "value" : "" }] } }
例 1
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) deleteStruct = { "bucket" : "bucket.rule.append1", "forcedDelete" : "true" } // 日付を指定してライフサイクルルールを追加 // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.rule.four", "objectLockEnabledForBucket" : true } bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ "srcFile":"#ExpandPath('./')#/s3-notes.pdf", "key":"key114" } bucketObj.uploadFile(uploadStruct) exp_date=DateFormat(DateAdd("d",8,now()),"yyyy-mm-dd") trans_date=DateFormat(DateAdd("d",2,now()),"yyyy-mm-dd") ruleStruct = { "rules" : [{ "id" : "rule1", "prefix":"key", "status" : "ENABLED", "expiration" : { "date":exp_date }, "transitions" : [{ "date":trans_date, "storageClass" : "ONEZONE_IA" }] }] } try{ bucketObj.setRules(ruleStruct) writeOutput("Lifecycle rule set successfully") rules=bucketObj.getRules().rules writedump(rules) } catch(any e){ writeOutput("Unable to set lifecycle") writeDump(e) } </cfscript>
例 2
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.rule.three", "objectLockEnabledForBucket" : true } bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ "srcFile":"#ExpandPath('./')#/s3-notes.pdf", "key":"key112" } bucketObj.uploadFile(uploadStruct) ruleStruct={ "rules":[{ "id" : "rule1", "prefix":"key", "status" : "ENABLED", "noncurrentVersionTransitions" : [{ "days":30, "storageClass" : "INTELLIGENT_TIERING" }] }] } try{ bucketObj.setRules(ruleStruct) writeOutput("Lifecycle rule set successfully") //writeDump(setRuleResponse) // rules=bucketObj.getRules().rules // writedump(rules) } catch(any e){ writeOutput("Unable to set lifecycle") writeDump(e) } </cfscript>
appendRules
appendRules メソッドを使用して、既存のルールセットにルールを追加できます。この関数は、次の構造体を引数として受け入れます。
"rules" : [ { "id" : "rule1", "prefix" : "a/b", "lifecycleRuleFilter" : { "prefix" : "", "tagging" : { "key": "", "value" : "" }, "lifecycleRuleAndOperator" : { "prefix" : "", "tagging" : [{ "key": "", "value" : "" }] } }, "status" : "ENABLED", "expiration" : { "date" : "YYYY-MM-DD", "days" : 3 }, "noncurrentVersionExpirationDays" : 30, "noncurrentVersionTransitions" : [ { "days" : 35, "storageClass" : "GLACIER" }], "abortIncompleteMultipartUploadInDays" : 7, "transitions" : [ { "days" : 90, "storageClass" : "ONEZONE_IA" } ] } ]
ColdFusion(2021 リリース)では、次はサポートされていません。将来のアップデートでサポートされる予定です。
"lifecycleRuleFilter" : { "prefix" : "", "tagging" : { "key": "", "value" : "" }, "lifecycleRuleAndOperator" : { "prefix" : "", "tagging" : [{ "key": "", "value" : "" }] } }
例
<cfscript> storageService = getCloudService(this.s3Cred,this.s3Conf) rules={ "rules" : [ { "id" : "rule1", "prefix" : "a/b", "status" : "ENABLED", "expiration" : { //"date" : "DD/MM/YYY", "days" : 3 }, "noncurrentVersionExpirationDays" : 30, "noncurrentVersionTransitions" :[ { "days" : 35, "storageClass" : "GLACIER" }], "abortIncompleteMultipartUploadInDays" : 7, "transitions" : [ { "days" : 90, "storageClass" : "ONEZONE_IA" } ] } ] } createBucketRequest = { "acl":"PRIVATE", "bucket" : "cf.bucket", "objectLockEnabledForBucket" : true } rootObj=storageService.createBucket(createBucketRequest) appendRulesResponse=rootObj.appendRules(rules) writeDump(appendRulesResponse) </cfscript>
getRules
getRules 関数を使用して、バケットのすべてのライフサイクルルールを取得できます。この関数は、引数を受け入れません。
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.rule.delete", "objectLockEnabledForBucket" : true } bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ "srcFile":"#ExpandPath('./')#/s3-notes.pdf", "key":"key100" } bucketObj.uploadFile(uploadStruct) // ルールを作成 ruleStruct={ "rules":[{ "id" : "rule1", "prefix":"key", "status" : "ENABLED", "noncurrentVersionTransitions" : [{ "days":30, "storageClass" : "INTELLIGENT_TIERING" }] }] } // ルールを設定 bucketObj.setRules(ruleStruct) // ルールを取得 rules=bucketObj.getRules().rules writeDump(rules) </cfscript>
バケットへのタグの追加
オブジェクトのタグ付けにより、ストレージを分類する方法が提供されます。
詳しくは、公式ドキュメントを参照してください。
シンタックス
addTags(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
key |
オブジェクトの一意の識別子。 |
はい |
versionId |
オブジェクトの特定のバージョンを参照します。 |
いいえ |
tags |
タグ構造体の配列。 |
はい |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demoaddtagstest", "objectLockEnabledForBucket" : true } bucketobj=storageService.createBucket(createBucketRequest) // ファイルをアップロード uploadStruct = { "srcFile" : "#ExpandPath('./')#/s3-notes.pdf", "key" : "key12" } bucketobj.uploadFile(uploadStruct) // オブジェクトにタグを追加 addTagStruct={ "key" : "key12", "tags" : [ { "key" : "label", "value" : "red" }, { "key": "category", "value": "important" } ] } try{ addTagResponse=bucketobj.addTags(addTagStruct) writeOutput("Tags added successfully") writeDump(addTagResponse) } catch(any e){ writeOutput("Failed to add tags") writeDump(e) } </cfscript>
オブジェクトのタグの取得
バケットに追加したタグのリストを取得します。getTagObjects 関数を使用します。
この関数は、タグの追加中に指定したキーを受け入れます。
シンタックス
getTagObjects(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
key |
オブジェクトの一意の識別子。 |
はい |
versionId |
オブジェクトの特定のバージョンを参照します。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demoaddtagstest", "objectLockEnabledForBucket" : true } bucketobj=storageService.createBucket(createBucketRequest) // ファイルをアップロード uploadStruct = { "srcFile" : "#ExpandPath('./')#/s3-notes.pdf", "key" : "key12" } bucketobj.uploadFile(uploadStruct) // オブジェクトにタグを追加 addTagStruct={ "key" : "key12", "versionId":"v1", "tags" : [ { "key" : "label", "value" : "red" }, { "key": "category", "value": "important" } ] } getTagResponse=bucketobj.GettagObjects("key12") writeDump(getTagResponse) </cfscript>
オブジェクトの詳細の取得
バケットにアップロードされたオブジェクトの詳細を取得します。
シンタックス
getObjectDetails(parameterStruct)
パラメーター
パラメーター | 説明 | 必須 |
---|---|---|
srcFile |
バケットにアップロードしたいファイルのパス。 | はい |
key |
オブジェクトの一意の識別子。 | はい |
acl |
オブジェクトに適用するための ACL。詳しくは、既定 ACL を参照してください。有効な値を次に示します。
|
いいえ |
cacheControl |
ここで定義されているように、キャッシュ動作を指定します。 | いいえ |
contentDisposition |
ここで定義されているように、オブジェクトのコンテンツ形式を指定します。 | いいえ |
contentEncoding |
ここで定義されているように、オブジェクトのエンコーディングタイプを指定します。 | いいえ |
contentLanguage |
アップロードするオブジェクトの言語。 | いいえ |
contentLength |
オブジェクトのサイズ(バイト単位)。 | いいえ |
validateContentMD5 |
true または false。メッセージの Base64 でエンコードされた 128 bit MD5 ダイジェスト(ヘッダーを除く)。 |
いいえ |
contentType |
ここで定義されているコンテンツの形式。 | いいえ |
expires |
オブジェクトをこれ以上キャッシュできない日付および時刻。 |
いいえ |
grantFullControl |
被付与者に、オブジェクトに対する READ、READ_ACP および WRITE_ACP 権限を付与します。 |
いいえ |
grantRead |
被付与者にオブジェクトデータの読み取りのみを許可します。 |
いいえ |
grantWrite |
被付与者にオブジェクトデータへの書き込みを許可します。 |
いいえ |
grantReadACP |
被付与者にオブジェクト ACL の読み取りを許可します。 |
いいえ |
grantWriteACP |
被付与者にオブジェクトの ACL への書き込みを許可します。 |
いいえ |
metadata |
使用するオブジェクトメタデータ。 | いいえ |
serverSideEncryption |
使用されるサーバー側暗号化アルゴリズム。 |
いいえ |
storageClass |
有効な値は、次のとおりです。
詳しくは、S3 ストレージクラスを参照してください。 |
いいえ |
websiteRedirectLocation |
バケットが Web サイトとして設定されている場合は、同じバケットの別のオブジェクトまたは外部 URL へのリダイレクトリクエストを指定します。 |
いいえ |
sseCustomerAlgorithm |
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。 |
いいえ |
sseCustomerKey |
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。 |
いいえ |
ssekmsKeyId |
AWS Key Management Service(AWS KMS)の ID を指定します。 |
いいえ |
ssekmsEncryptionContext |
オブジェクトの暗号化に使用する、AWS KMS の暗号化コンテキストを指定します。 |
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 |
いいえ |
tagging |
オブジェクトのタグセット。キーと値のペアの構造体である必要があります。 |
いいえ |
objectLockMode |
このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。
|
いいえ |
objectLockRetainUntilDate |
このオブジェクトのオブジェクトロックの期限にする日付および時刻。 |
いいえ |
objectLockLegalHoldStatus |
指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。
|
いいえ |
例
<cfscript> storageService = getcloudService(application.awsCred,application.s3Conf) // バケットを作成 bucketStruct={ "acl":"PRIVATE", "bucket" : "bucket.demo.objectdetailsdemo", "objectLockEnabledForBucket" : true } bucketObj=storageService.createBucket(bucketStruct) // バケットにオブジェクトをアップロード uploadStruct = { "srcFile" : "#ExpandPath('./')#/Colors.jpg", "key" : "key001", "metadata": { "filename": "Colors.jpg", "creator":"john", "place":"london", "creation_date":"2020/04/20", "filetype":"image" }, "contentLanguage":"en", "websiteRedirectLocation":"http://bucket", "expires":"2020-05-28" } bucketObj.uploadFile(uploadStruct) // オブジェクトの詳細を取得 objectDetailsResponse=bucketObj.getObjectDetails("key001") writeDump(objectDetailsResponse) </cfscript>
ファイルの並列アップロード
バケットのオブジェクトをパーツに分けて、または並行してアップロードできます。5 MB ~ 5 TB のサイズでオブジェクトの並行アップロードを使用できます。安定した高帯域幅のネットワークで大きなオブジェクトをアップロードしている場合、並行アップロードを使用して、マルチスレッドのパフォーマンスを得るためにオブジェクトのパーツを並行してアップロードすることで、利用可能な帯域幅をより効率的に使用できます。
シンタックス
parallelUploadFile(parameterStruct)
パラメーター
パラメーター | 説明 | 必須 |
---|---|---|
srcFile | アップロードするファイルの場所。 | はい |
chunkLengthInBytes | コンテンツチャンクのサイズ。 | いいえ |
timeOutInSeconds | アップロード操作のタイムアウト。 | いいえ |
acl | Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。 有効な値は、次のとおりです。
|
いいえ |
cacheControl | ここで定義されているように、キャッシュ動作を指定します。 | いいえ |
contentDisposition | ここで定義されているように、オブジェクトのコンテンツ形式を指定します。 | いいえ |
contentEncoding | ここで定義されているように、オブジェクトのエンコーディングタイプを指定します。 | いいえ |
contentLanguage | アップロードするオブジェクトの言語。 | いいえ |
contentLength | オブジェクトのサイズ(バイト単位)。 | いいえ |
validateContentMD5 : | true または false。メッセージの Base64 でエンコードされた 128 bit MD5 ダイジェスト(ヘッダーを除く)。 | いいえ |
contentType | ここで定義されているコンテンツの形式。 | いいえ |
expires | オブジェクトをこれ以上キャッシュできない日付および時刻。 | いいえ |
grantFullControl | 被付与者に、オブジェクトに対する READ、READ_ACP および WRITE_ACP 権限を付与します。 | いいえ |
grantRead | 被付与者にオブジェクト ACL の読み取りを許可します。 | いいえ |
grantReadACP | 被付与者にオブジェクト ACL の読み取りを許可します。 | いいえ |
grantWriteACP | 被付与者にオブジェクトの ACL への書き込みを許可します。 | いいえ |
metadata | 使用するオブジェクトメタデータ。 | いいえ |
serverSideEncryption | 使用されるサーバー側暗号化アルゴリズム。 | いいえ |
storageClass | 有効な値は、次のとおりです。
詳しくは、S3 ストレージクラスを参照してください。 |
いいえ |
websiteRedirectLocation | バケットが Web サイトとして設定されている場合は、同じバケットの別のオブジェクトまたは外部 URL へのリダイレクトリクエストを指定します。 | いいえ |
sseCustomerAlgorithm | オブジェクトを暗号化する際に使用するアルゴリズムを指定します。 | いいえ |
sseCustomerKey | S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。 | いいえ |
sseCustomerKeyMD5 | キーの MD5 を指定します | いいえ |
ssekmsKeyId | AWS Key Management Service(AWS KMS)の ID を指定します。 | いいえ |
ssekmsEncryptionContext | オブジェクトの暗号化に使用する、AWS KMS の暗号化コンテキストを指定します。 | いいえ |
requestPayer | リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 | いいえ |
タグ付け | メモ:これは、S3 SDK 2.10.46 以降でサポートされます。 | いいえ |
objectLockMode | このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。
|
|
objectLockRetainUntilDate | このオブジェクトのオブジェクトロックの期限にする日付および時刻。 | いいえ |
objectLockLegalHoldStatus | 指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。
|
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "bucket" : "bucket.parallel.upload" } rootObj = storageService.createBucket(createBucketRequest) // 並列アップロード構造体 parallelUploadRequest = { "srcFile" : "#ExpandPath('..')#/files/file.txt", "chunkLengthInBytes": "5e+6", "timeOutInSeconds": "60", "key": "key1" } try{ uploadResponse = rootObj.parallelUploadFile(parallelUploadRequest) writeOutput("Parallel upload successful") writeDump(uploadResponse) } catch(any e){ writeDump(e) } </cfscript>
ファイルの並行ダウンロード
バケット内の大きなオブジェクトをアップロードしたら、そのオブジェクトをパーツに分けて並行してダウンロードできます。
シンタックス
parallelDownloadFile(parameterStruct)
パラメーター
パラメーター | 説明 | 必須 |
---|---|---|
key | オブジェクトがアップロードされた際に使用したキー。 | はい |
destinationFile | ファイルのダウンロード先。 | はい |
chunkLengthInBytes | コンテンツチャンクのサイズ。 | いいえ |
cacheControl |
オブジェクトの Cache-Control ヘッダーを設定します。 | いいえ |
contentDisposition |
応答の Content-Disposition ヘッダーを設定します。 |
いいえ |
contentEncoding |
応答の Content-Encoding ヘッダーを設定します。 |
いいえ |
contentLanguage |
応答の Content-Language ヘッダーを設定します。 |
いいえ |
contentType |
応答の Content-Type ヘッダーを設定します。 |
いいえ |
expires |
応答の Response ヘッダーを設定します。 |
いいえ |
versionId |
オブジェクトの特定のバージョンを参照します。 | いいえ |
sseCustomerAlgorithm |
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。 |
いいえ |
sseCustomerKey |
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。 |
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 |
いいえ |
例
<cfscript> storageService = cloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "bucket" : "bucket.parallel.download" } rootObj = storageService.createBucket(createBucketRequest) // 並列アップロード構造体 parallelUploadRequest = { "srcFile" : "#ExpandPath('..')#/files/file.txt", "chunkLengthInBytes": "5e+6", "timeOutInSeconds": "60", "key": "key1" } // オブジェクトを並列にアップロード rootObj.parallelUploadFile(parallelUploadRequest) // 並列ダウンロード構造体 parallelDownloadRequest = { "key" : "key1", "destinationFile" : "file.txt", "chunkLengthInBytes": "5e+6" } downloadResponse=rootObj.parallelDownloadFile(parallelDownloadRequest) writeDump(downloadResponse) </cfscript>
ファイルのマルチパートアップロード
マルチパートアップロードを使用すると、単一のオブジェクトをパーツのセットとしてアップロードできます。各パーツは、オブジェクトのデータの隣接する部分です。
それらのオブジェクトパーツを独立して、任意の順序でアップロードできます。
詳しくは、AWS のマルチパートアップロードを参照してください。
シンタックス
multipartUpload(parameterStruct)
パラメーター
パラメーター | 説明 | 必須 |
---|---|---|
srcFile | アップロードするファイルの場所。 | はい |
chunkLengthInBytes | コンテンツチャンクのサイズ。 | いいえ |
timeOutInSeconds | アップロード操作のタイムアウト。 | いいえ |
acl | Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。 有効な値は、次のとおりです。
|
いいえ |
cacheControl | ここで定義されているように、キャッシュ動作を指定します。 | いいえ |
contentDisposition | ここで定義されているように、オブジェクトのコンテンツ形式を指定します。 | いいえ |
contentEncoding | ここで定義されているように、オブジェクトのエンコーディングタイプを指定します。 | いいえ |
contentLanguage | アップロードするオブジェクトの言語。 | いいえ |
contentLength | オブジェクトのサイズ(バイト単位)。 | いいえ |
validateContentMD5 : | true または false。メッセージの Base64 でエンコードされた 128 bit MD5 ダイジェスト(ヘッダーを除く)。 | いいえ |
contentType | ここで定義されているコンテンツの形式。 | いいえ |
expires | オブジェクトをこれ以上キャッシュできない日付および時刻。 | いいえ |
grantFullControl | 被付与者に、オブジェクトに対する READ、READ_ACP および WRITE_ACP 権限を付与します。 | いいえ |
grantRead | 被付与者にオブジェクト ACL の読み取りを許可します。 | いいえ |
grantReadACP | 被付与者にオブジェクト ACL の読み取りを許可します。 | いいえ |
grantWriteACP | 被付与者にオブジェクトの ACL への書き込みを許可します。 | いいえ |
metadata | 使用するオブジェクトメタデータ。 | いいえ |
serverSideEncryption | 使用されるサーバー側暗号化アルゴリズム。 | いいえ |
storageClass | 有効な値は、次のとおりです。
詳しくは、S3 ストレージクラスを参照してください。 |
いいえ |
websiteRedirectLocation | バケットが Web サイトとして設定されている場合は、同じバケットの別のオブジェクトまたは外部 URL へのリダイレクトリクエストを指定します。 | いいえ |
sseCustomerAlgorithm | オブジェクトを暗号化する際に使用するアルゴリズムを指定します。 | いいえ |
sseCustomerKey | S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。 | いいえ |
sseCustomerKeyMD5 | キーの MD5 を指定します | いいえ |
ssekmsKeyId | AWS Key Management Service(AWS KMS)の ID を指定します。 | いいえ |
ssekmsEncryptionContext | オブジェクトの暗号化に使用する、AWS KMS の暗号化コンテキストを指定します。 | いいえ |
requestPayer | リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 | いいえ |
タグ付け | メモ:これは、S3 SDK 2.10.46 以降でサポートされます。 | いいえ |
objectLockMode | このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。
|
|
objectLockRetainUntilDate | このオブジェクトのオブジェクトロックの期限にする日付および時刻。 | いいえ |
objectLockLegalHoldStatus | 指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。
|
いいえ |
例
<cfscript> storageService = cloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "bucket" : "bucket.parallel.multipartupload" } rootObj = storageService.createBucket(createBucketRequest) // マルチパートアップロード構造体 mulitipartUploadRequest = { "srcFile" : "#ExpandPath('..')#/files/file.mp4", "chunkLengthInBytes": "5e+6", "timeOutInSeconds": "2", "key": "key1" } try{ uploadResponse = rootObj.multipartUpload(mulitipartUploadRequest) writeOutput("File uploaded sucessfully in multiple parts") writeDump(uploadResponse) } catch(any e){ writeDump(e) } </cfscript>
オブジェクトのアップロード
オブジェクトをバケットにアップロードします。
シンタックス
uploadObject(parameterStruct)
パラメーター
パラメーター | 説明 | 必須 |
---|---|---|
key |
オブジェクトの一意の識別子。 | はい |
acl |
オブジェクトに適用するための ACL。詳しくは、既定 ACL を参照してください。有効な値を次に示します。
|
いいえ |
cacheControl |
ここで定義されているように、キャッシュ動作を指定します。 | いいえ |
contentDisposition |
ここで定義されているように、オブジェクトのコンテンツ形式を指定します。 | いいえ |
contentEncoding |
ここで定義されているように、オブジェクトのエンコーディングタイプを指定します。 | いいえ |
contentLanguage |
アップロードするオブジェクトの言語。 | いいえ |
contentLength |
オブジェクトのサイズ(バイト単位)。 | いいえ |
validateContentMD5 |
メッセージの Base64 でエンコードされた 128 bit MD5 ダイジェスト(ヘッダーを除く)。 |
いいえ |
contentType |
ここで定義されているコンテンツの形式。 | いいえ |
expires |
オブジェクトをこれ以上キャッシュできない日付および時刻。 |
いいえ |
grantFullControl |
被付与者に、オブジェクトに対する READ、READ_ACP および WRITE_ACP 権限を付与します。 |
いいえ |
grantRead |
被付与者にオブジェクトデータの読み取りのみを許可します。 |
いいえ |
grantWrite |
被付与者にオブジェクトデータへの書き込みを許可します。 |
いいえ |
grantReadACP |
被付与者にオブジェクト ACL の読み取りを許可します。 |
いいえ |
grantWriteACP |
被付与者にオブジェクトの ACL への書き込みを許可します。 |
いいえ |
metadata |
使用するオブジェクトメタデータ。 | いいえ |
serverSideEncryption |
使用されるサーバー側暗号化アルゴリズム。 |
いいえ |
storageClass |
有効な値は、次のとおりです。
詳しくは、S3 ストレージクラスを参照してください。 |
いいえ |
websiteRedirectLocation |
バケットが Web サイトとして設定されている場合は、同じバケットの別のオブジェクトまたは外部 URL へのリダイレクトリクエストを指定します。 |
いいえ |
sseCustomerAlgorithm |
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。 |
いいえ |
sseCustomerKey |
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。 |
いいえ |
ssekmsKeyId |
AWS Key Management Service(AWS KMS)の ID を指定します。 |
いいえ |
ssekmsEncryptionContext |
オブジェクトの暗号化に使用する、AWS KMS の暗号化コンテキストを指定します。 |
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 |
いいえ |
tagging |
オブジェクトのタグセット。キーと値のペアの構造体である必要があります。 |
いいえ |
objectLockMode |
このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。
|
いいえ |
objectLockRetainUntilDate |
このオブジェクトのオブジェクトロックの期限にする日付および時刻。 |
いいえ |
object | アップロードするオブジェクト。 | いいえ |
type | オブジェクトのタイプ - json | いいえ |
useCustomSerializer | true または false。カスタムシリアライザーを使用するかどうかを指定します。デフォルト値は true です。カスタムシリアライザーは、XML のシリアル化解除に常に使用されます。false の場合、XML/JSON シリアル化解除はデフォルトの ColdFusion 動作を使用して実行されます。useCustomSerializer が false でその他のタイプが渡された場合、TypeNotSupportedException がスローされます。 詳しくは、シリアル化を参照してください。 |
いいえ |
objectLockLegalHoldStatus |
指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。
|
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 rootObj=storageService.bucket("bucket.download.object","true") key = "key12" a=["a","b","c","d"]; // アップロード構造体を定義 uploadStruct = { "type": "json", "object" : a, "key" : key } // オブジェクトをアップロード try{ rootObj.uploadObject(uploadStruct) writeOutput("Object uploaded successfully") } catch(any e){ writeOutput("Failed to upload object") writeDump(e) } // ダウンロード構造体を定義 downloadStruct = { "type": "json", "key" : key } // オブジェクトをダウンロード try{ rootObj.downloadObject(downloadStruct) writeOutput("Object downloaded successfully") } catch(any e){ writeOutput("Failed to download object") writeDump(e) } </cfscript>
オブジェクトのダウンロード
以前アップロードしたオブジェクトをダウンロードします。
シンタックス
downloadObject(parameterStruct)
パラメーター
パラメーター | 説明 | 必須 |
---|---|---|
key |
オブジェクトの一意の識別子。 | はい |
cacheControl |
オブジェクトの Cache-Control ヘッダーを設定します。 | いいえ |
contentDisposition |
応答の Content-Disposition ヘッダーを設定します。 |
いいえ |
contentEncoding |
応答の Content-Encoding ヘッダーを設定します。 |
いいえ |
contentLanguage |
応答の Content-Language ヘッダーを設定します。 |
いいえ |
contentType |
応答の Content-Type ヘッダーを設定します。 |
いいえ |
expires |
応答の Response ヘッダーを設定します。 |
いいえ |
versionId |
オブジェクトの特定のバージョンを参照します。 | いいえ |
sseCustomerAlgorithm |
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。 |
いいえ |
sseCustomerKey |
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。 |
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 |
いいえ |
type | オブジェクトのタイプ - json | いいえ |
useCustomSerializer | true または false | いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 rootObj=storageService.bucket("bucket.download.object","true") key = "key12" a=["a","b","c","d"]; // アップロード構造体を定義 uploadStruct = { "type": "json", "object" : a, "key" : key } // オブジェクトをアップロード try{ rootObj.uploadObject(uploadStruct) writeOutput("Object uploaded successfully") } catch(any e){ writeOutput("Failed to upload object") writeDump(e) } // ダウンロード構造体を定義 downloadStruct = { "type": "json", "key" : key } // オブジェクトをダウンロード try{ rootObj.downloadObject(downloadStruct) writeOutput("Object downloaded successfully") } catch(any e){ writeOutput("Failed to download object") writeDump(e) } </cfscript>
ディレクトリのアップロード
バケットのディレクトリをアップロードします。また、一括アップロードを実行することもできます。
シンタックス
uploadDirectory(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
します |
アップロード中にオブジェクトキーに追加される接頭辞。 |
はい |
sourceDirectory |
アップロード元のディレクトリ。 |
はい |
uploadNestedDirectory |
true または false。メインのフォルダー内にサブディレクトリを含めるかどうかを指定します。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.b.four", "objectLockEnabledForBucket" : true } bucketObj=storageService.createBucket(createBucketRequest) // アップロードのリクエストパラメーターを定義 dirUploadReq = { "prefix" : "test_bulk\", "sourceDirectory" : "../files", "uploadNestedDirectory" : true } try{ uploadResponse=storageService.uploadDirectory(dirUploadReq) writeOutput("Directory uploaded successfully") writeDump(uploadResponse) } catch(any e){ writeDump(e) } </cfscript>
PutObjectLockConfiguration
指定されたバケットにオブジェクトロック設定を配置します。
詳しくは、公式ドキュメントを参照してください。
シンタックス
putObjectLockConfiguration(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
objectLockConfiguration |
ObjectLockConfiguration パラメーターのルートレベルのタグ。 |
はい |
objectLockEnabled |
このバケットでオブジェクトロック設定が有効になっているかどうか。有効な値は、ENABLED です。 |
いいえ |
defaultRetention |
構造体には、次が含まれます。 mode:このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。
days:オブジェクトをロックする日数。 years:オブジェクトをロックする年数。 メモ:日数または年数の両方ではなく、どちらかを指定します。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.getobjectlock", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ "srcFile":"#ExpandPath('./')#/s3-notes.pdf", "key":"key161" } bucketObj.uploadFile(uploadStruct) // オブジェクトロックを設定 putObjectLockRequest = { "objectLockConfiguration" : { "objectLockEnabled" : "ENABLED", "defaultRetention" : { "mode" : "GOVERNANCE", "days" : 31 } } } bucketObj.putObjectLockConfiguration(putObjectLockRequest) // オブジェクトロックを取得 objectLockResponse=bucketObj.getObjectLockConfiguration() writeDump(objectLockResponse) </cfscript>
getObjectLockConfiguration
バケットのオブジェクトロック設定を取得します。
詳しくは、公式ドキュメントを参照してください。
シンタックス
getObjectLockConfiguration()
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.getobjectlock", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ "srcFile":"#ExpandPath('./')#/s3-notes.pdf", "key":"key161" } bucketObj.uploadFile(uploadStruct) // オブジェクトロックを設定 putObjectLockRequest = { "objectLockConfiguration" : { "objectLockEnabled" : "ENABLED", "defaultRetention" : { "mode" : "GOVERNANCE", "days" : 31 } } } bucketObj.putObjectLockConfiguration(putObjectLockRequest) // オブジェクトロックを取得 objectLockResponse=bucketObj.getObjectLockConfiguration() writeDump(objectLockResponse) </cfscript>
acquireLegalHold
訴訟ホールドをオブジェクトに適用します。
詳しくは、オブジェクトのロックおよび公式ドキュメントを参照してください。
シンタックス
acquireLegalHold(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
key |
訴訟ホールドを配置するオブジェクトのキー名。 |
はい |
versionId |
訴訟ホールドを配置するオブジェクトのバージョン ID。 |
いいえ |
legalHold |
LegalHold パラメーターのルートレベルのタグ。構造体には、次が含まれます。 status:ON または OFF |
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。有効な値は、REQUESTER です。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.acquirelegalhold", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ "srcFile":"#ExpandPath('./')#/s3-notes.pdf", "key":"key121" } bucketObj.uploadFile(uploadStruct) // バージョニングを有効化 bucketObj.enableVersioning() // すべてのバージョンをリストアップ list=bucketObj.listAllVersions() // バージョン ID を取得 v_id=list.response[1].versionId // 訴訟ホールド取得リクエスト acquireLegalHoldRequest = { "key" : "key121", "versionId" : "#v_id#", "legalHold" : { "status" : "ON" }, "requestPayer" : "REQUESTER" } try{ acquireHoldResponse=bucketObj.acquireLegalHold(acquireLegalHoldRequest) writeDump(acquireHoldResponse) } catch (any e){ writeDump(e) } </cfscript>
getLegalHold
訴訟ホールドをオブジェクトに適用します。
詳しくは、オブジェクトのロックを参照してください。
シンタックス
getLegalHold(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
key |
訴訟ホールドステータスを取得したいオブジェクトのキー名。 |
はい |
versionId |
訴訟ホールドステータスを取得したいオブジェクトのバージョン ID。 |
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。有効な値は、REQUESTER です。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.getlegalhold", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ "srcFile":"#ExpandPath('./')#/s3-notes.pdf", "key":"key141" } bucketObj.uploadFile(uploadStruct) // バージョニングを有効化 bucketObj.enableVersioning() // すべてのバージョンをリストアップ list=bucketObj.listAllVersions() // バージョン ID を取得 v_id=list.response[1].versionId // オブジェクトの訴訟ホールドステータスを取得 getLegalHoldRequest = { "key" : "key141", "versionId" : "#v_id#", "requestPayer" : "REQUESTER" } getLegalHoldResponse=bucketObj.getLegalHold(getLegalHoldRequest) writeDump(getLegalHoldResponse) </cfscript>
保持ロックの獲得
オブジェクトにオブジェクト保持設定を配置します。
詳しくは、公式ドキュメントを参照してください。
シンタックス
acquireRetentionLock(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
key |
このオブジェクト保持設定を適用したいオブジェクトのキー名。 |
はい |
versionID |
このオブジェクト保持設定を適用したいオブジェクトのバージョン ID。 |
いいえ |
retention |
構造体には、次が含まれます。
|
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 |
いいえ |
bypassGovernanceRetention |
この操作がガバナンスモードの制限をバイパスする必要があるかどうか。 |
|
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.acquireretentionlock", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ "srcFile":"#ExpandPath('./')#/s3-notes.pdf", "key":"key131" } bucketObj.uploadFile(uploadStruct) // バージョニングを有効化 bucketObj.enableVersioning() // すべてのバージョンをリストアップ list=bucketObj.listAllVersions() // バージョン ID を取得 v_id=list.response[1].versionId retainDate=DateFormat(DateAdd("d",8,now()),"yyyy-mm-dd") retentionRequestStruct = { "key" : "key131", "versionId" : "#v_id#", "retention" : { "mode" : "GOVERNANCE", "retainUntilDate" : "#retainDate#" }, "requestPayer" : "REQUESTER", "bypassGovernanceRetention" : false } try{ acquireRetentionLockResponse=bucketObj.acquireRetentionLock(retentionRequestStruct) writeDump(acquireRetentionLockResponse) } catch(any e){ writeDump(e) } </cfscript>
保持ロックの取得
オブジェクトの保持設定を取得します。
シンタックス
getRetentionLock(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
key |
このオブジェクト保持設定を取得したいオブジェクトのキー名。 |
はい |
versionId |
このオブジェクト保持設定を取得したいオブジェクトのバージョン ID。 |
いいえ |
requestPayer |
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。有効な値は、REQUESTER です。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred, application.s3Conf) createBucketRequest = { "bucket" : "bucket.demo.lock", "objectLockEnabledForBucket" : "true" } rootObj=storageService.createBucket(createBucketRequest) //rootObj=storageService.bucket("cfqa2.test123456",true); rootObj.enableVersioning() // ファイルをアップロード uploadRequest = { "srcFile" : "test.txt", "key" : "test", "validateContentMD5":"true", "objectLockMode" : "GOVERNANCE", "objectLockRetainUntilDate" : "2019-12-11", "objectLockLegalHoldStatus" : "ON" } rootObj.uploadFile(uploadRequest); //writedump(uploadResponse) request1 = { "objectLockConfiguration" : { "objectLockEnabled" : "ENABLED", "defaultRetention" : { "mode" : "GOVERNANCE", "days" : "2", "years": "1" } } } rootObj.putObjectLockConfiguration(request1) retentionRequest = { "key" : "test", "retention" : { "mode" : "GOVERNANCE", "retainUntilDate" : "{ts '2019-11-27 12:13:50'}" }, "bypassGovernanceRetention" :"true" } rootObj.acquireRetentionLock(retentionRequest) getRetentionRequest={ "key" : "test" } writedump(rootObj.getRetentionLock(getRetentionRequest)) </cfscript>
リクエスター支払い
一般に、バケットに関連するストレージおよびデータ転送コストはバケット所有者が支払います。バケット所有者は、バケットをリクエスター支払いバケットとして設定できます。リクエスター支払いバケットの場合、リクエストおよびバケットからのデータのダウンロードにかかるコストは、バケット所有者ではなくリクエスターが支払います。データの保存にかかるコストは、常にバケット所有者が支払います。
通常、データを共有したいが、他のユーザーがそのデータにアクセスする際に発生する費用を負担したくない場合に、バケットをリクエスター支払いに設定します。例えば、郵便番号リスト、参照データ、地理空間情報、Web クローリングデータなど、大規模なデータセットを利用できるようにする際に、リクエスター支払いバケットを使用します。
バケットでリクエスター支払いを有効にすると、そのバケットへの匿名アクセスは許可されません。
リクエスター支払いバケットに関するすべてのリクエストを認証する必要があります。リクエスト認証により、Amazon S3 は、リクエスターを識別し、リクエスター支払いバケットの使用に対して課金できます。
enableRequesterPay
バケットに対するリクエスター支払いを有効にします。
シンタックス
enableRequesterpay()
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "sg.bucket", "objectLockEnabledForBucket" : true } // バケットを作成 myobj=storageService.createBucket(createBucketRequest) // バケットでリクエスター支払いを有効化 myobj.enableRequesterpay() // リクエスター支払いステータスを取得 getResponse=myobj.getRequesterPayStatus() writeDump(getResponse) </cfscript>
disableRequesterPay
バケットに対するリクエスター支払いを無効にします。
シンタックス
disableRequesterPay()
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.disablerequester", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットでリクエスター支払いを有効化 bucketObj.enableRequesterpay() // バケットでリクエスター支払いを無効化 try{ disableRequesterPayResponse=bucketObj.disableRequesterPay() writeOutput("Requester pay disabled") writeDump(disableRequesterPayResponse) } catch (any e){ writeOutput("Unable to disable requester pay") writeDUmp(e) } </cfscript>
getRequesterPayStatus
バケットでリクエスター支払いが有効になっているかどうかを確認します。
シンタックス
getRequesterPayStatus()
例
<cfscript> storageService = cloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.getrequester", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットでリクエスター支払いを有効化 bucketObj.enableRequesterpay() // リクエスター支払いの詳細を取得 getRequesterPayResponse=bucketObj.getRequesterPayStatus() writeDump(getRequesterPayResponse) </cfscript>
セキュリティ
AWS では、特定のバケットおよびオブジェクトにアクセスできるユーザーを指定する、Identity and Access Management(IAM)ユーザーポリシーを提供しています。
AWS S3 では、特定のバケットおよびオブジェクトへのアクセスを定義する、書き込みバケットポリシーを提供します。バケットポリシーを使用して、AWS アカウントにわたるアクセスを付与したり、パブリックまたは匿名権限を付与したり、条件に基づいてアクセスを許可またはブロックしたりできます。
パブリックアクセスを制限するための一元化された方法として Amazon S3 ブロックパブリックアクセスを使用します。ブロックパブリックアクセス設定は、バケットポリシーおよびオブジェクト権限を上書きします。必ず、パブリックアクセスさせたくないすべてのアカウントおよびバケットのブロックパブリックアクセスを有効にしてください。
Amazon S3 ブロックパブリックアクセスには、4 つの設定が用意されています。これらの設定を様々な組み合わせで個別のバケットや AWS アカウント全体に適用できます。設定をアカウントに適用する場合、そのアカウントが所有するすべてのバケットに適用します。
putSecurityAccessBlock
バケットに対するパブリックアクセスをブロックします。詳しくは、PutPublicAccessBlock を参照してください。
シンタックス
putSecurityAccessBlock(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
blockPublicAcls |
true または false。このバケットのこのバケットおよびオブジェクトに対して、S3 パブリックアクセスコントロールリスト(ACL)をブロックする必要があるかどうかを示します。 |
いいえ |
ignorePublicAcls |
true または false。このバケットのこのバケットおよびオブジェクトに対して、S3 パブリックアクセスコントロールリスト(ACL)を無視する必要があるかどうかを示します。 |
いいえ |
blockPublicPolicy |
true または false。このバケットに対して、S3 がパブリックバケットポリシーをブロックする必要があるかどうかを示します。 |
いいえ |
restrictPublicBuckets |
true または false。このバケットに対して、S3 がパブリックバケットポリシーを制限する必要があるかどうかを示します。 |
いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.getpublicaccess", "objectLockEnabledForBucket" : true } bucketobj=storageService.createBucket(createBucketRequest) pubAccessReq = { "publicAccessBlockConfiguration" : { "blockPublicAcls" : true, "ignorePublicAcls" : true, "blockPublicPolicy" : true, "restrictPublicBuckets" : true } } try{ accessBlockResponse=bucketobj.putSecurityAccessBlock(pubAccessReq) writeOutput("Block to public access enforced successfully") writeDump(accessBlockResponse) } catch(any e){ writeOutput("Failed to block public access") writeDump(e) } // ブロックの詳細を取得 getBlockResponse=bucketobj.getSecurityAccessBlock() writeDump(getBlockResponse) </cfscript>
getSecurityAccessBlock
バケットに対するパブリックアクセス設定を取得します。詳しくは、GetPublicAccessBlock を参照してください。
シンタックス
getSecurityAccessBlock()
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.getpublicaccess", "objectLockEnabledForBucket" : true } bucketobj=storageService.createBucket(createBucketRequest) pubAccessReq = { "publicAccessBlockConfiguration" : { "blockPublicAcls" : true, "ignorePublicAcls" : true, "blockPublicPolicy" : true, "restrictPublicBuckets" : true } } try{ accessBlockResponse=bucketobj.putSecurityAccessBlock(pubAccessReq) writeOutput("Block to public access enforced successfully") writeDump(accessBlockResponse) } catch(any e){ writeOutput("Failed to block public access") writeDump(e) } // ブロックの詳細を取得 getBlockResponse=bucketobj.getSecurityAccessBlock() writeDump(getBlockResponse) </cfscript>
S3 バケットの位置の取得
バケットを含むリージョンを取得します。
詳しくは、GetBucketLocation を参照してください。
シンタックス
getLocation()
例
<cfscript> storageService = getCloudService(application.awsCred, application.s3Conf) // バケットを作成 createBucketRequest = { "acl":"PRIVATE", "bucket" : "bucket.demo.loc", "objectLockEnabledForBucket" : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットの位置を取得 bucketLoc=bucketObj.getLocation() writeDump(bucketLoc) </cfscript>
オブジェクトのメタデータの取得
バケットのオブジェクトのメタデータを取得します。オブジェクトのアップロード中に、オブジェクトのメタデータが既に設定されています。
シンタックス
getObjectMetadata(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
key |
オブジェクトがアップロードされた際に使用したキー。 |
はい |
versionId |
オブジェクトに関連付けられたバージョン ID。 |
いいえ |
例
<cfscript> storageService = cloudService(application.awsCred,application.s3Conf) // バケットを作成 bucketStruct={ "acl":"PRIVATE", "bucket" : "bucket.demo.objectmetadatademo", "objectLockEnabledForBucket" : true } bucketObj=storageService.createBucket(bucketStruct) // バケットにオブジェクトをアップロード uploadStruct={ "srcFile" : "#ExpandPath('./')#/Colors.jpg", "key" : "key001", "metadata": { "filename": "Colors.jpg", "creator":"john", "place":"london", "creation_date":"2020/04/20", "filetype":"image" } } bucketObj.uploadFile(uploadStruct) // オブジェクトのメタデータを取得 objectMetadataResponse=bucketObj.getObjectMetadata("key001") writeDump(objectMetadataResponse) </cfscript>
署名付き URL
署名付き URL を使用すると、署名付き URL の作成者がそのオブジェクトへのアクセス権限を持っている場合に限り、URL で識別されたオブジェクトにアクセスできます。オブジェクトをアップロードするための署名付き URL を受信する場合、署名付き URL の作成者がそのオブジェクトをアップロードするのに必要な権限を持っている場合にのみ、オブジェクトをアップロードできます。
詳しくは、署名付き URL を使用したオブジェクトのアップロードを参照してください。
generateGetPresignedUrl
オブジェクトを取得するための URL を生成します。
シンタックス
generateGetPresignedUrl(parameterStruct)
パラメーター
パラメーター | 説明 | 必須 |
---|---|---|
duration | URL の継続時間(日数)。 | いいえ |
key | オブジェクトに関連付けられたキー。 | はい |
cacheControl |
ここで定義されているように、キャッシュ動作を指定します。 | いいえ |
contentDisposition |
ここで定義されているように、オブジェクトのコンテンツ形式を指定します。 | いいえ |
contentEncoding |
ここで定義されているように、オブジェクトのエンコーディングタイプを指定します。 | いいえ |
contentLanguage |
アップロードするオブジェクトの言語。 | いいえ |
contentType |
ここで定義されているコンテンツの形式。 | いいえ |
expires |
オブジェクトをこれ以上キャッシュできない日付および時刻。 |
いいえ |
versionId | オブジェクトのバージョン ID。 | いいえ |
sseCustomerAlgorithm |
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。 |
いいえ |
sseCustomerKey |
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。 |
いいえ |
sseCustomerKeyMD5 | キーの MD5 を指定します | いいえ |
requestPayer | リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。 | いいえ |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "bucket" : "bucket.parallel.getpresignedurl" } rootObj = storageService.createBucket(createBucketRequest) // ファイルをアップロード src = "#ExpandPath('..')#/files/file.txt" key = "key12" uploadStruct = { "srcFile" : src, "key" : key } rootObj.uploadFile(uploadStruct) // 署名付き URL 構造体 getPresignedUrlRequest = { "duration": "1d", // 1 日 "key":key } getPresignedUrlResp = rootObj.generateGetPresignedUrl(getPresignedUrlRequest) writeDump(getPresignedUrlResp) </cfscript>
generatePutPresignedUrl
オブジェクトを配置するための URL を生成します。
シンタックス
generatePutPresignedUrl(parameterStruct)
パラメーター
パラメーター |
説明 |
必須 |
---|---|---|
duration |
URL の継続時間(日数)。 |
いいえ |
key |
オブジェクトに関連付けられたキー。 |
はい |
例
<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { "bucket" : "bucket.parallel.putpresignedurl" } rootObj = storageService.createBucket(createBucketRequest) putPresignedReq = { "duration": "1d", // 1 日 "key" : "key12" } putPresignedUrlResp = rootObj.generatePutPresignedUrl(putPresignedReq); writedump(putPresignedUrlResp) </cfscript>