ColdFusion と Amazon S3

概要

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 のパッケージマネージャーページを使用するか、以下の手順に従います。

  1. <CF_HOME>/cfusion/bin に移動します。

  2. 次のコマンドを入力します。

    • Windows:cfpm.bat
    • Linux:cfpm.sh
  3. コマンド 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=&quot;S3_app&quot;; void function onApplicationStart(){ application.awsCred = { &quot;alias&quot; : &quot;aws_std_queue&quot;, &quot;vendorName&quot; : &quot;AWS&quot;, &quot;region&quot; : &quot;us-east-2&quot;, &quot;secretAccessKey&quot; : &quot;xxxxxxxxxxxxxxxxx&quot;, &quot;accessKeyId&quot; : &quot;xxxxxxxxxxxxxxxx&quot; } application.s3Conf = { &quot;serviceName&quot; : &quot;S3&quot; 
                             } 
  
         
    } 
}

オブジェクトの作成

s3Object = getCloudService(application.awsCred, application.s3Conf) 

CFM ページ上

CFM ページでは、次に示す 4 つの方法のいずれかで S3 資格情報および設定オプションを指定できます。

資格情報エイリアスおよび設定エイリアス

S3 資格情報および設定オプション用のエイリアスを作成したら、次に示すように、getCloudService ハンドルでそれらのエイリアスを使用できます。

<cfscript> // ColdFusion Administrator で資格情報エイリアスと設定エイリアスを定義 s3=getCloudService(&quot;awsCred&quot;,&quot;s3Conf&quot;) // 以下にコードを記述 ...........</cfscript>

資格情報エイリアスおよび設定オプションの構造体

<cfscript> // 資格情報エイリアスとサービス設定構造体を使用 s3Conf = { &quot;alias&quot;:&quot;s3Conf&quot;, &quot;serviceName&quot; : &quot;S3&quot;, &quot;clientOverrideConfig&quot;:{ &quot;retryPolicy&quot;:{ &quot;numRetries&quot;:4 } }, &quot;httpClientConfig&quot;:{ &quot;maxConnections&quot;:50 } } s3= getCloudService(&quot;s3Cred&quot;, s3Conf) // 以下にコードを記述 .....................</cfscript>

設定エイリアスおよび資格情報の構造体

<cfscript> // 設定エイリアスとサービス資格情報構造体を使用 // s3 資格情報 s3Creds={ &quot;vendorName&quot;:&quot;AWS&quot;, &quot;alias&quot;: &quot;s3Cred&quot;, &quot;region&quot;:&quot;us-east-2&quot;, &quot;accessKeyId&quot;: &quot;access key&quot;, &quot;secretAccessKey&quot;: &quot;secret access&quot; } s3= getCloudService(s3Creds, &quot;s3Conf&quot;) // 以下にコードを記述 .....................................</cfscript>

資格情報と設定オプションの両方の構造体

<cfscript> // クラウドの資格情報と設定の構造体を使用 s3Cred={ &quot;vendorName&quot;:&quot;AWS&quot;, &quot;alias&quot;: &quot;s3_cred_alias&quot;, &quot;region&quot;:&quot;us-east-2&quot;, &quot;accessKeyId&quot;: &quot;access key&quot;, &quot;secretAccessKey&quot;: &quot;secret access key&quot; } s3Conf = { &quot;alias&quot;:&quot;s3_conf_alias&quot;, &quot;serviceName&quot; : &quot;S3&quot;, &quot;clientOverrideConfig&quot;:{ &quot;retryPolicy&quot;:{ &quot;numRetries&quot;:4 } }, &quot;httpClientConfig&quot;:{ &quot;maxConnections&quot;:50 } } sqs = getCloudService(s3Cred, s3Conf ) // 以下にコードを記述 ...................................................................</cfscript>

Admin API

また、Admin API を使用して SQS 資格情報および設定オプションを追加することもできます。資格情報および設定を追加するためのメソッドは、cloud.cfc で使用できます。

次に、メソッド addCredential(struct credential) および addServiceConfig(struct config) の使用例を示します。

資格情報の追加

<cfscript> // Administrator コンポーネントのオブジェクトを作成して login メソッドを呼び出す adminObj = createObject(&quot;component&quot;,&quot;cfide.adminapi.administrator&quot;) adminObj.login(&quot;admin&quot;) // クラウドコンポーネントのオブジェクトを作成 cloudObj = createObject(&quot;component&quot;,&quot;cfide.adminapi.cloud&quot;) // 資格情報構造体を定義 credentialStruct={ &quot;alias&quot; : &quot;CredS3&quot;, &quot;vendorName&quot; : &quot;AWS&quot;, &quot;region&quot; : &quot;us-east-2&quot;, &quot;secretAccessKey&quot; : &quot;secret access key&quot;, &quot;accessKeyId&quot; : &quot;access key&quot; } // 資格情報の credentialStruct を追加 try{ cloudObj.addCredential(credentialStruct) writeOutput(&quot;Credentials added successfully&quot;) } catch(any e){ writeDump(e) } </cfscript>

設定の追加

<cfscript> // Administrator コンポーネントのオブジェクトを作成して login メソッドを呼び出す adminObj = createObject(&quot;component&quot;,&quot;cfide.adminapi.administrator&quot;) adminObj.login(&quot;admin&quot;) // クラウドコンポーネントのオブジェクトを作成 cloudObj = createObject(&quot;component&quot;,&quot;cfide.adminapi.cloud&quot;) // 設定構造体を定義 configStruct={ &quot;alias&quot;:&quot;ConfS3&quot;, &quot;serviceName&quot;:&quot;S3&quot;, &quot;clientOverrideConfig&quot;:{ &quot;retryPolicy&quot;:{ &quot;numRetries&quot;:4 } }, &quot;httpClientConfig&quot;:{ &quot;maxConnections&quot;:50 } } // 設定の configStruct を追加 try{ cloudObj.addServiceConfig(configStruct) writeOutput(&quot;Configuration service added successfully&quot;) } 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(&quot;bucket.001&quot;,&quot;true&quot;) writeOutput(&quot;Bucket created successfully&quot;) } catch(any e){ writeDump(e) } </cfscript>

ルートの作成 - 追加のパラメーター

追加のパラメーターを使用してルートオブジェクトを取得します。

  • Amazon S3 - はい
  • Azure - はい
  • マルチクラウド - はい

シンタックス

createRoot(requestParameters)

パラメーター

パラメーター

説明

bucketName

作成するバケットの名前。

objectLockEnabledForBucket

yes または no。バケットのオブジェクトロックが有効かどうかを識別します。詳しくは、オブジェクトロックを参照してください。

acl

Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。

有効な値は、次のとおりです。

  • PRIVATE:バケットの所有者のみがバケットおよびそのオブジェクトのフルコントロール権限を持ちます。
  • PUBLIC_READ:バケットの所有者がフルコントロール権限を持ちます。AllUsers グループのメンバーは、バケットおよびそのオブジェクトに対する READ 権限を持ちます。
  • PUBLIC_READ_WRITE:所有者は、FULL_CONTROL を取得します。AllUsers グループは、READ および WRITE アクセス権を取得します。
  • AUTHENTICATED_READ: Owner gets FULL_CONTROL.AuthenticatedUsers グループは、READ アクセス権を取得します。

詳しくは、AWS の ACL を参照してください。

権限を付与する変数

Amazon S3 が ACL. でサポートする権限。

有効な値は、次のとおりです。

  • grantFullControl:被付与者にバケットのフルコントロール権限を許可します。
  • grantRead:被付与者にバケットのオブジェクトの表示を許可します。
  • grantWrite:被付与者にバケットの任意のオブジェクトの作成、上書きおよび削除を許可します。
  • grantWriteACP:被付与者にバケットの ACL への書き込みを許可します。

詳しくは、アクセス許可を参照してください。

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.002&quot;, &quot;objectLockEnabledForBucket&quot; : 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(&quot;bucket.002&quot;,&quot;true&quot;) writeOutput(&quot;Bucket created successfully&quot;) } catch(any e){ writeDump(e) } </cfscript>

バケットの作成 - 追加のパラメーター

追加のパラメーターを使用して S3 でバケットを作成します。

シンタックス

createBucket(parameterStruct)

パラメーター

パラメーター

説明

bucketName

作成するバケットの名前。

objectLockEnabledForBucket

yes または no。バケットのオブジェクトロックが有効かどうかを識別します。詳しくは、オブジェクトロックを参照してください。

acl

Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。

有効な値は、次のとおりです。

  • PRIVATE:バケットの所有者のみがバケットおよびそのオブジェクトのフルコントロール権限を持ちます。
  • PUBLIC_READ:バケットの所有者がフルコントロール権限を持ちます。AllUsers グループのメンバーは、バケットおよびそのオブジェクトに対する READ 権限を持ちます。
  • PUBLIC_READ_WRITE:所有者は、FULL_CONTROL を取得します。AllUsers グループは、READ および WRITE アクセス権を取得します。
  • AUTHENTICATED_READ: Owner gets FULL_CONTROL.AuthenticatedUsers グループは、READ アクセス権を取得します。

詳しくは、AWS の ACL を参照してください。

権限を付与する変数

Amazon S3 が ACL. でサポートする権限。

有効な値は、次のとおりです。

  • grantFullControl:被付与者にバケットのフルコントロール権限を許可します。
  • grantRead:被付与者にバケットのオブジェクトの表示を許可します。
  • grantWrite:被付与者にバケットの任意のオブジェクトの作成、上書きおよび削除を許可します。
  • grantWriteACP:被付与者にバケットの ACL への書き込みを許可します。

詳しくは、アクセス許可を参照してください。

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // bucketList=storageService.listAll() // すべてのバケットをリストアップ // writeDump(bucketList) // abort; createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.three.demo&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 try{ myobj=storageService.createBucket(createBucketRequest) writeOutput(&quot;Bucket created successfully&quot;) writeDump(myobj) } catch (any e){ writeOutput(&quot;Failed to create the bucket&quot;) 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(&quot;List of buckets&quot;) writeDump(bucketList) </cfscript>

バケットの削除

空のバケットを削除したり、AWS マネジメントコンソールを使用している場合に、オブジェクトを含むバケットを削除したりできます。オブジェクトを含むバケットを削除する場合、そのバケット内のすべてのオブジェクトは、完全に削除されます。

詳しくは、DeleteObjects を参照してください。

  • Amazon S3 - はい
  • Azure - はい
  • マルチクラウド - はい

シンタックス

delete(parameterStruct)
delete(bucketName)

パラメーター

パラメーター

説明

bucketName

削除するバケットの名前。

forcedDelete

true または false。オブジェクトを含むバケットを強制的に削除します。

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.name&quot;, &quot;objectLockEnabledForBucket&quot; : true } storageService.createBucket(createBucketRequest) // バケットを削除 deleteBucketRequest = { &quot;bucket&quot; : &quot;bucket.name&quot;, &quot;forcedDelete&quot; : &quot;true&quot; // デフォルトは false } try{ myobj=storageService.delete(deleteBucketRequest) writeOutput(&quot;Bucket deleted successfully&quot;) writeDump(myobj) } catch (any e){ writeOutput(&quot;Unable to delete the bucket&quot;) writeDump(e) } </cfscript> 

ファイルのアップロード

バケットにファイルをアップロードできます。uploadFile 関数では、引数として、次の値を含む構造体を渡します。

詳しくは、公式ドキュメントを参照してください。

シンタックス

uploadFile(parameterStruct)

パラメーター

パラメーター 説明 必須
srcFile
バケットにアップロードしたいファイルのパス。 はい
key
オブジェクトの一意の識別子。 はい
acl

オブジェクトに適用するための ACL。詳しくは、既定 ACL を参照してください。有効な値を次に示します。

  • PRIVATE
  • PUBLIC_READ
  • PUBLIC_READ_WRITE
  • AUTHENTICATED_READ
  • AWS_EXEC_READ
  • BUCKET_OWNER_READ
  • BUCKET_OWNER_FULL_CONTROL
いいえ
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

有効な値は、次のとおりです。

  • STANDARD
  • REDUCED_REDUNDANCY
  • STANDARD_IA
  • ONEZONE_IA
  • INTELLIGENT_TIERING
  • GLACIER
  • DEEP_ARCHIVE

詳しくは、S3 ストレージクラスを参照してください。

いいえ
websiteRedirectLocation
バケットが Web サイトとして設定されている場合は、同じバケットの別のオブジェクトまたは外部 URL へのリダイレクトリクエストを指定します。
いいえ
sseCustomerAlgorithm
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。
いいえ
sseCustomerKey
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。
いいえ
ssekmsKeyId
AWS Key Management Service(AWS KMS)の ID を指定します。
いいえ
ssekmsEncryptionContext
オブジェクトの暗号化に使用する、AWS KMS の暗号化コンテキストを指定します。
いいえ
requestPayer
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。
いいえ
tagging
オブジェクトのタグセット。キーと値のペアの構造体である必要があります。
いいえ
objectLockMode

このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。

  • GOVERNANCE
  • COMPLIANCE
いいえ
objectLockRetainUntilDate
このオブジェクトのオブジェクトロックの期限にする日付および時刻。
いいえ
objectLockLegalHoldStatus

指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。

  • ON
  • OFF
いいえ

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) //writeOutput(ExpandPath('./')) 
  // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.name&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketObj=storageService.createBucket(createBucketRequest) // オブジェクトをアップロード uploadStruct = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/file.txt&quot;, &quot;key&quot; : &quot;key12&quot;, &quot;metadata&quot;:{ &quot;place&quot;:&quot;London&quot;, &quot;deployment&quot;:&quot;Testing&quot; } } try{ uploadResponse=bucketObj.uploadFile(uploadStruct) writeOutput(&quot;Object uploaded successfully&quot;) writeDump(uploadResponse) } catch (any e){ writeOutput(&quot;Could not upload the object&quot;) 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 = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.four&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketObj=storageService.createBucket(createBucketRequest) // オブジェクトをアップロード uploadStruct = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/file.txt&quot;, &quot;key&quot; : &quot;key22&quot;, &quot;metadata&quot;:{ &quot;filename&quot;:&quot;file.txt&quot;, &quot;place&quot;:&quot;bangalore&quot;, &quot;category&quot;:&quot;finance&quot; } } bucketObj.uploadFile(uploadStruct) // ファイルをダウンロード downloadStruct = { &quot;destinationFile&quot; : &quot;file.txt&quot;, &quot;key&quot; : &quot;key22&quot; } try{ downloadResponse=bucketObj.downloadToFile(downloadStruct) writeOutput(&quot;Object downloaded successfully&quot;) writeDump(downloadResponse) } catch (any e){ writeOutput(&quot;Failed to download object&quot;) 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 = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;cf.source.bucket.1&quot;, &quot;objectLockEnabledForBucket&quot; : true } createBucketRequest2 = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;cf.dest.bucket.1&quot;, &quot;objectLockEnabledForBucket&quot; : true } // ソースバケット source_obj=storageService.createBucket(createBucketRequest1) // 宛先バケット dest_object=storageService.createBucket(createBucketRequest2) // アップロードファイル構造体 uploadStruct = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/file.txt&quot;, &quot;key&quot; : &quot;key12&quot; } // ファイルをソースバケットにアップロード uploadResponse=source_obj.uploadFile(uploadStruct) // ファイル構造体をコピー copyRequest = { &quot;sourceBucket&quot;: &quot;cf.source.bucket.1&quot;, &quot;sourceKey&quot; : &quot;key12&quot;, &quot;key&quot; : &quot;destKey&quot; } 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(&quot;bucket.policy&quot;,&quot;true&quot;) policy = { &quot;Id&quot;: &quot;Policy1571390473326&quot;, &quot;Version&quot;: &quot;2012-10-17&quot;, &quot;Statement&quot;: [ { &quot;Sid&quot;: &quot;Stmt1574139965216&quot;, &quot;Action&quot;: [ &quot;s3:GetBucketAcl&quot; ], &quot;Effect&quot;: &quot;Allow&quot;, &quot;Resource&quot;: &quot;bucket.policy&quot;, &quot;Principal&quot;: &quot;*&quot; } ] } policyRequest = { &quot;policy&quot; : 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(&quot;bucket.policy&quot;,&quot;true&quot;) policy = { &quot;Id&quot;: &quot;Policy1571390473326&quot;, &quot;Version&quot;: &quot;2012-10-17&quot;, &quot;Statement&quot;: [ { &quot;Sid&quot;: &quot;Stmt1574139965216&quot;, &quot;Action&quot;: [ &quot;s3:GetBucketAcl&quot; ], &quot;Effect&quot;: &quot;Allow&quot;, &quot;Resource&quot;: &quot;bucket.policy&quot;, &quot;Principal&quot;: &quot;*&quot; } ] } policyRequest = { &quot;policy&quot; : 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(&quot;bucket.policy&quot;,&quot;true&quot;) policy = { &quot;Id&quot;: &quot;Policy1571390473326&quot;, &quot;Version&quot;: &quot;2012-10-17&quot;, &quot;Statement&quot;: [ { &quot;Sid&quot;: &quot;Stmt1574139965216&quot;, &quot;Action&quot;: [ &quot;s3:GetBucketAcl&quot; ], &quot;Effect&quot;: &quot;Allow&quot;, &quot;Resource&quot;: &quot;bucket.policy&quot;, &quot;Principal&quot;: &quot;*&quot; } ] } policyRequest = { &quot;policy&quot; : 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 = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.getstatus&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バージョニングを有効化 bucketObj.enableVersioning() // バージョンのステータスを取得 versionStatus=bucketObj.getVersioningStatus() writeDump(versionStatus) </cfscript> 

バージョニング状態の取得

バケットのバージョニング状態を取得します。

シンタックス

getVersioningStatus()

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.getstatus&quot;, &quot;objectLockEnabledForBucket&quot; : 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 = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.listversions&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 myobj=storageService.createBucket(createBucketRequest) // ファイルアップロード構造体を定義 uploadStruct1 = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/file1.txt&quot;, &quot;key&quot; : &quot;key1&quot; } uploadStruct2 = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/file2.txt&quot;, &quot;key&quot; : &quot;key122&quot; } uploadStruct3 = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/file3.txt&quot;, &quot;key&quot; : &quot;key123&quot; } uploadStruct4 = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/file1.txt&quot;, &quot;key&quot; : &quot;key124&quot; } uploadResponse1=myobj.uploadFile(uploadStruct1); uploadResponse2=myobj.uploadFile(uploadStruct2); uploadResponse3=myobj.uploadFile(uploadStruct3); uploadResponse4=myobj.uploadFile(uploadStruct4); listAllVersionsRequest={ &quot;prefix&quot; : &quot;key12&quot; } // すべてのバージョンをリストアップ 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 = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.suspendversioning&quot;, // バージョニングを中断するには、バケットのオブジェクトロックを無効化 &quot;objectLockEnabledForBucket&quot; : 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)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。

有効な値は、次のとおりです。

  • PRIVATE:バケットの所有者のみがバケットおよびそのオブジェクトのフルコントロール権限を持ちます。
  • PUBLIC_READ:バケットの所有者がフルコントロール権限を持ちます。AllUsers グループのメンバーは、バケットおよびそのオブジェクトに対する READ 権限を持ちます。
  • PUBLIC_READ_WRITE:所有者は、FULL_CONTROL を取得します。AllUsers グループは、READ および WRITE アクセス権を取得します。
  • AUTHENTICATED_READ: Owner gets FULL_CONTROL.AuthenticatedUsers グループは、READ アクセス権を取得します。

詳しくは、AWS の ACL を参照してください。

いいえ

権限を付与する変数

Amazon S3 が ACL. でサポートする権限。

有効な値は、次のとおりです。

  • grantFullControl:被付与者にバケットのフルコントロール権限を許可します。
  • grantRead:被付与者にバケットのオブジェクトの表示を許可します。
  • grantWrite:被付与者にバケットの任意のオブジェクトの作成、上書きおよび削除を許可します。
  • grantWriteACP:被付与者にバケットの ACL への書き込みを許可します。
  • grantReadACP:被付与者にバケットの ACL の読み取りを許可します。

詳しくは、アクセス許可を参照してください。

いいえ

<cfscript> storageService = getCloudService(this.s3Cred,this.s3Conf) createBucketRequest1 = { &quot;bucket&quot; : &quot;cfqa.003&quot; } rootObj = storageService.createRoot(createBucketRequest1); putBucketAclRequest = { &quot;acl&quot; : &quot;PRIVATE&quot; } putBucketAclResponse=rootObj.putBucketAcl(putBucketAclRequest); writeDump(putBucketAclResponse) </cfscript> 

権限付与の例を示します。

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest1 = { &quot;bucket&quot; : &quot;cfqa.003&quot; } rootObj = storageService.createRoot(createBucketRequest1) putBucketAclRequest = { &quot;grantFullControl&quot;: &quot;emailAddress=john@example.com&quot;, // &quot;grantFullControl&quot;: &quot;id=f1db27629293ee8354a2874de1959b39bec20ffe98417b931fb381f97007cf97&quot; &quot;grantReadACP&quot; : &quot;uri=http://acs.amazonaws.com/groups/s3/LogDelivery&quot; } putBucketAclResponse=rootObj.putBucketAcl(putBucketAclRequest); writeDump(putBucketAclResponse) </cfscript>

getBucketAcl

この関数を使用して、バケットの ACL のリストを取得します。

詳しくは、getBucketAcl 公式ドキュメントを参照してください。

シンタックス

getBucketAcl()

<cfscript> storageService = getCloudService(this.s3Cred,this.s3Conf) createBucketRequest1 = { &quot;bucket&quot; : &quot;cfqa.004&quot;, &quot;grantFullControl&quot;: &quot;uri=http://acs.amazonaws.com/groups/global/AuthenticatedUsers&quot; } rootObj = storageService.createRoot(createBucketRequest1); getBucketAclResponse=rootObj.getBucketAcl() writeDump(getBucketAclResponse) </cfscript>

putObjectAcl

この関数は、ACL サブリソースを使用して、バケットに既に存在しているオブジェクトに対するアクセスコントロールリスト(ACL)権限を設定します。

putObjectAcl には、構造体に追加の属性 "key": "object_key" があります。

詳しくは、公式ドキュメントを参照してください。

シンタックス

putObjectAcl(parameterStruct)

パラメーター

パラメーター

説明

必須

acl

Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。

有効な値は、次のとおりです。

  • PRIVATE:バケットの所有者のみがバケットおよびそのオブジェクトのフルコントロール権限を持ちます。
  • PUBLIC_READ:バケットの所有者がフルコントロール権限を持ちます。AllUsers グループのメンバーは、バケットおよびそのオブジェクトに対する READ 権限を持ちます。
  • PUBLIC_READ_WRITE:所有者は、FULL_CONTROL を取得します。AllUsers グループは、READ および WRITE アクセス権を取得します。
  • AUTHENTICATED_READ: Owner gets FULL_CONTROL.AuthenticatedUsers グループは、READ アクセス権を取得します。

詳しくは、AWS の ACL を参照してください。

いいえ

権限を付与する変数

Amazon S3 が ACL. でサポートする権限。

有効な値は、次のとおりです。

  • grantFullControl:被付与者にバケットのフルコントロール権限を許可します。
  • grantRead:被付与者にバケットのオブジェクトの表示を許可します。
  • grantWrite:被付与者にバケットの任意のオブジェクトの作成、上書きおよび削除を許可します。
  • grantWriteACP:被付与者にバケットの ACL への書き込みを許可します。

詳しくは、アクセス許可を参照してください。

いいえ

key

操作のためのキー。

はい

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;bucket&quot; : &quot;bucket.putobjectacl.demo&quot; } bucketObj = storageService.createBucket(createBucketRequest) // オブジェクトをアップロード uploadStruct = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot; : &quot;key12&quot; } bucketObj.uploadFile(uploadStruct) // オブジェクトに ACL を設定 putObjectAclRequest = { &quot;key&quot; : &quot;key12&quot;, &quot;acl&quot; : &quot;PRIVATE&quot; } try{ objectAclResponse=bucketObj.putObjectAcl(putObjectAclRequest) writeOutput(&quot;ACL applied successfully on the object&quot;) writeDump(objectAclResponse) } catch(any e){ writeOutput(&quot;Unable to apply ACL on the object&quot;) writeDump(e) } putObjectAclResponse=bucketObj.GetObjectAcl(&quot;key12&quot;) writeDump(putObjectAclResponse) </cfscript>

getObjectAcl

オブジェクトのアクセスコントロールリスト(ACL)を返します

この操作を行うには、オブジェクトに対する READ_ACP アクセス権を持っている必要があります。

シンタックス

getObjectAcl(parameterStruct)

パラメーター

パラメーター

説明

必須

key

ACL 情報を取得するためのオブジェクトのキー。

はい

versionId

オブジェクトの特定のバージョンを参照します。

いいえ

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;bucket&quot; : &quot;bucket.putobjectacl.demo&quot; } bucketObj = storageService.createBucket(createBucketRequest) // オブジェクトをアップロード uploadStruct = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot; : &quot;key12&quot; } bucketObj.uploadFile(uploadStruct) // オブジェクトに ACL を設定 putObjectAclRequest = { &quot;key&quot; : &quot;key12&quot;, &quot;acl&quot; : &quot;PRIVATE&quot; } try{ objectAclResponse=bucketObj.putObjectAcl(putObjectAclRequest) writeOutput(&quot;ACL applied successfully on the object&quot;) writeDump(objectAclResponse) } catch(any e){ writeOutput(&quot;Unable to apply ACL on the object&quot;) writeDump(e) } putObjectAclResponse=bucketObj.getObjectAcl(&quot;key12&quot;) writeDump(putObjectAclResponse) </cfscript>

ライフサイクルルール

有効期間での AWS S3 によるオブジェクトの管理方法を定義するライフサイクルルール。次の 2 種類のアクションがあります。

  1. Transition アクション — オブジェクトがいつ別のストレージクラスに以降するかを定義します。
  2. Expiration アクション — オブジェクトの有効期限がいつ切れるかを定義します。Amazon S3 は、ユーザーに代わって、期限切れのオブジェクトを削除します。

 明確に定義されたライフサイクルを持つオブジェクトのライフサイクル設定ルールを定義します。次に例を示します。

  • 一部のドキュメントには、限られた期間、頻繁にアクセスされるものがあります。その後、ほとんどアクセスされなくなります。ある時点では、リアルタイムアクセスは不要かもしれませんが、組織や規制によっては、特定の期間、アーカイブする必要があることがあります。その後、それらを削除できます。
  • 主にアーカイブ目的で、あるタイプのデータを Amazon S3 にアップロードする場合があります。例えば、デジタルメディア、財務および医療レコード、生のゲノムシーケンスデータ、長期間のデータベースバックアップ、法規制の順守のために保持する必要があるデータをアーカイブすることがあります。
  • 定期的なログをバケットにアップロードする場合、1 週間または 1 か月の間、アプリケーションがそのログを必要とすることがあります。その後、それらを削除したほうがいいでしょう。

setRules

setRules 関数を使用して、バケットのオブジェクトに対するライフサイクルルールを設定できます。この関数は、次の構造体を引数として受け入れます。

&quot;rules&quot; : [ { &quot;id&quot; : &quot;rule1&quot;, &quot;prefix&quot; : &quot;a/b&quot;, &quot;lifecycleRuleFilter&quot; : { &quot;prefix&quot; : &quot;&quot;, &quot;tagging&quot; : { &quot;key&quot;: &quot;&quot;, &quot;value&quot; : &quot;&quot; }, &quot;lifecycleRuleAndOperator&quot; : { &quot;prefix&quot; : &quot;&quot;, &quot;tagging&quot; : [{ &quot;key&quot;: &quot;&quot;, &quot;value&quot; : &quot;&quot; }] } }, &quot;status&quot; : &quot;ENABLED&quot;, &quot;expiration&quot; : { &quot;date&quot; : &quot;YYYY-MM-DD&quot;, &quot;days&quot; : 3 }, &quot;noncurrentVersionExpirationDays&quot; : 30, &quot;noncurrentVersionTransitions&quot; : [ { &quot;days&quot; : 35, &quot;storageClass&quot; : &quot;GLACIER&quot; }], &quot;abortIncompleteMultipartUploadInDays&quot; : 7, &quot;transitions&quot; : [ { &quot;days&quot; : 90, &quot;storageClass&quot; : &quot;ONEZONE_IA&quot; 
                } 
            ] 
        } 
    ]

ColdFusion(2021 リリース)では、次はサポートされていません。将来のアップデートでサポートされる予定です。

&quot;lifecycleRuleFilter&quot; : { &quot;prefix&quot; : &quot;&quot;, &quot;tagging&quot; : { &quot;key&quot;: &quot;&quot;, &quot;value&quot; : &quot;&quot; }, &quot;lifecycleRuleAndOperator&quot; : { &quot;prefix&quot; : &quot;&quot;, &quot;tagging&quot; : [{ &quot;key&quot;: &quot;&quot;, &quot;value&quot; : &quot;&quot; 
                    }] 
                } 
            }

例 1

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) deleteStruct = { &quot;bucket&quot; : &quot;bucket.rule.append1&quot;, &quot;forcedDelete&quot; : &quot;true&quot; } // 日付を指定してライフサイクルルールを追加 // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.rule.four&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ &quot;srcFile&quot;:&quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot;:&quot;key114&quot; } bucketObj.uploadFile(uploadStruct) exp_date=DateFormat(DateAdd(&quot;d&quot;,8,now()),&quot;yyyy-mm-dd&quot;) trans_date=DateFormat(DateAdd(&quot;d&quot;,2,now()),&quot;yyyy-mm-dd&quot;) ruleStruct = { &quot;rules&quot; : [{ &quot;id&quot; : &quot;rule1&quot;, &quot;prefix&quot;:&quot;key&quot;, &quot;status&quot; : &quot;ENABLED&quot;, &quot;expiration&quot; : { &quot;date&quot;:exp_date }, &quot;transitions&quot; : [{ &quot;date&quot;:trans_date, &quot;storageClass&quot; : &quot;ONEZONE_IA&quot; }] }] } try{ bucketObj.setRules(ruleStruct) writeOutput(&quot;Lifecycle rule set successfully&quot;) rules=bucketObj.getRules().rules writedump(rules) } catch(any e){ writeOutput(&quot;Unable to set lifecycle&quot;) writeDump(e) } </cfscript>

例 2

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.rule.three&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ &quot;srcFile&quot;:&quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot;:&quot;key112&quot; } bucketObj.uploadFile(uploadStruct) ruleStruct={ &quot;rules&quot;:[{ &quot;id&quot; : &quot;rule1&quot;, &quot;prefix&quot;:&quot;key&quot;, &quot;status&quot; : &quot;ENABLED&quot;, &quot;noncurrentVersionTransitions&quot; : [{ &quot;days&quot;:30, &quot;storageClass&quot; : &quot;INTELLIGENT_TIERING&quot; }] }] } try{ bucketObj.setRules(ruleStruct) writeOutput(&quot;Lifecycle rule set successfully&quot;) //writeDump(setRuleResponse) // rules=bucketObj.getRules().rules // writedump(rules) } catch(any e){ writeOutput(&quot;Unable to set lifecycle&quot;) writeDump(e) } </cfscript>

appendRules

appendRules メソッドを使用して、既存のルールセットにルールを追加できます。この関数は、次の構造体を引数として受け入れます。

&quot;rules&quot; : [ { &quot;id&quot; : &quot;rule1&quot;, &quot;prefix&quot; : &quot;a/b&quot;, &quot;lifecycleRuleFilter&quot; : { &quot;prefix&quot; : &quot;&quot;, &quot;tagging&quot; : { &quot;key&quot;: &quot;&quot;, &quot;value&quot; : &quot;&quot; }, &quot;lifecycleRuleAndOperator&quot; : { &quot;prefix&quot; : &quot;&quot;, &quot;tagging&quot; : [{ &quot;key&quot;: &quot;&quot;, &quot;value&quot; : &quot;&quot; }] } }, &quot;status&quot; : &quot;ENABLED&quot;, &quot;expiration&quot; : { &quot;date&quot; : &quot;YYYY-MM-DD&quot;, &quot;days&quot; : 3 }, &quot;noncurrentVersionExpirationDays&quot; : 30, &quot;noncurrentVersionTransitions&quot; : [ { &quot;days&quot; : 35, &quot;storageClass&quot; : &quot;GLACIER&quot; }], &quot;abortIncompleteMultipartUploadInDays&quot; : 7, &quot;transitions&quot; : [ { &quot;days&quot; : 90, &quot;storageClass&quot; : &quot;ONEZONE_IA&quot; 
                } 
            ] 
        } 
    ]

ColdFusion(2021 リリース)では、次はサポートされていません。将来のアップデートでサポートされる予定です。

&quot;lifecycleRuleFilter&quot; : { &quot;prefix&quot; : &quot;&quot;, &quot;tagging&quot; : { &quot;key&quot;: &quot;&quot;, &quot;value&quot; : &quot;&quot; }, &quot;lifecycleRuleAndOperator&quot; : { &quot;prefix&quot; : &quot;&quot;, &quot;tagging&quot; : [{ &quot;key&quot;: &quot;&quot;, &quot;value&quot; : &quot;&quot; 
                    }] 
                } 
            }

<cfscript> storageService = getCloudService(this.s3Cred,this.s3Conf) rules={ &quot;rules&quot; : [ { &quot;id&quot; : &quot;rule1&quot;, &quot;prefix&quot; : &quot;a/b&quot;, &quot;status&quot; : &quot;ENABLED&quot;, &quot;expiration&quot; : { //&quot;date&quot; : &quot;DD/MM/YYY&quot;, &quot;days&quot; : 3 }, &quot;noncurrentVersionExpirationDays&quot; : 30, &quot;noncurrentVersionTransitions&quot; :[ { &quot;days&quot; : 35, &quot;storageClass&quot; : &quot;GLACIER&quot; }], &quot;abortIncompleteMultipartUploadInDays&quot; : 7, &quot;transitions&quot; : [ { &quot;days&quot; : 90, &quot;storageClass&quot; : &quot;ONEZONE_IA&quot; } ] } ] } createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;cf.bucket&quot;, &quot;objectLockEnabledForBucket&quot; : true } rootObj=storageService.createBucket(createBucketRequest) appendRulesResponse=rootObj.appendRules(rules) writeDump(appendRulesResponse) </cfscript>

getRules

getRules 関数を使用して、バケットのすべてのライフサイクルルールを取得できます。この関数は、引数を受け入れません。

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.rule.delete&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ &quot;srcFile&quot;:&quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot;:&quot;key100&quot; } bucketObj.uploadFile(uploadStruct) // ルールを作成 ruleStruct={ &quot;rules&quot;:[{ &quot;id&quot; : &quot;rule1&quot;, &quot;prefix&quot;:&quot;key&quot;, &quot;status&quot; : &quot;ENABLED&quot;, &quot;noncurrentVersionTransitions&quot; : [{ &quot;days&quot;:30, &quot;storageClass&quot; : &quot;INTELLIGENT_TIERING&quot; }] }] } // ルールを設定 bucketObj.setRules(ruleStruct) // ルールを取得 rules=bucketObj.getRules().rules writeDump(rules) </cfscript>

バケットへのタグの追加

オブジェクトのタグ付けにより、ストレージを分類する方法が提供されます。

詳しくは、公式ドキュメントを参照してください。

シンタックス

addTags(parameterStruct)

パラメーター

パラメーター

説明

必須

key

オブジェクトの一意の識別子。

はい

versionId

オブジェクトの特定のバージョンを参照します。

いいえ

tags

タグ構造体の配列。

はい

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demoaddtagstest&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketobj=storageService.createBucket(createBucketRequest) // ファイルをアップロード uploadStruct = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot; : &quot;key12&quot; } bucketobj.uploadFile(uploadStruct) // オブジェクトにタグを追加 addTagStruct={ &quot;key&quot; : &quot;key12&quot;, &quot;tags&quot; : [ { &quot;key&quot; : &quot;label&quot;, &quot;value&quot; : &quot;red&quot; }, { &quot;key&quot;: &quot;category&quot;, &quot;value&quot;: &quot;important&quot; } ] } try{ addTagResponse=bucketobj.addTags(addTagStruct) writeOutput(&quot;Tags added successfully&quot;) writeDump(addTagResponse) } catch(any e){ writeOutput(&quot;Failed to add tags&quot;) writeDump(e) } </cfscript>

オブジェクトのタグの取得

バケットに追加したタグのリストを取得します。getTagObjects 関数を使用します。

この関数は、タグの追加中に指定したキーを受け入れます。

シンタックス

getTagObjects(parameterStruct)

パラメーター

パラメーター

説明

必須

key

オブジェクトの一意の識別子。

はい

versionId

オブジェクトの特定のバージョンを参照します。

いいえ

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demoaddtagstest&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketobj=storageService.createBucket(createBucketRequest) // ファイルをアップロード uploadStruct = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot; : &quot;key12&quot; } bucketobj.uploadFile(uploadStruct) // オブジェクトにタグを追加 addTagStruct={ &quot;key&quot; : &quot;key12&quot;, &quot;versionId&quot;:&quot;v1&quot;, &quot;tags&quot; : [ { &quot;key&quot; : &quot;label&quot;, &quot;value&quot; : &quot;red&quot; }, { &quot;key&quot;: &quot;category&quot;, &quot;value&quot;: &quot;important&quot; } ] } getTagResponse=bucketobj.GettagObjects(&quot;key12&quot;) writeDump(getTagResponse) </cfscript> 

オブジェクトの詳細の取得

バケットにアップロードされたオブジェクトの詳細を取得します。

シンタックス

getObjectDetails(parameterStruct)

パラメーター

パラメーター 説明 必須
srcFile
バケットにアップロードしたいファイルのパス。 はい
key
オブジェクトの一意の識別子。 はい
acl

オブジェクトに適用するための ACL。詳しくは、既定 ACL を参照してください。有効な値を次に示します。

  • PRIVATE
  • PUBLIC_READ
  • PUBLIC_READ_WRITE
  • AUTHENTICATED_READ
  • AWS_EXEC_READ
  • BUCKET_OWNER_READ
  • BUCKET_OWNER_FULL_CONTROL
いいえ
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

有効な値は、次のとおりです。

  • STANDARD
  • REDUCED_REDUNDANCY
  • STANDARD_IA
  • ONEZONE_IA
  • INTELLIGENT_TIERING
  • GLACIER
  • DEEP_ARCHIVE

詳しくは、S3 ストレージクラスを参照してください。

いいえ
websiteRedirectLocation
バケットが Web サイトとして設定されている場合は、同じバケットの別のオブジェクトまたは外部 URL へのリダイレクトリクエストを指定します。
いいえ
sseCustomerAlgorithm
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。
いいえ
sseCustomerKey
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。
いいえ
ssekmsKeyId
AWS Key Management Service(AWS KMS)の ID を指定します。
いいえ
ssekmsEncryptionContext
オブジェクトの暗号化に使用する、AWS KMS の暗号化コンテキストを指定します。
いいえ
requestPayer
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。
いいえ
tagging
オブジェクトのタグセット。キーと値のペアの構造体である必要があります。
いいえ
objectLockMode

このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。

  • GOVERNANCE
  • COMPLIANCE
いいえ
objectLockRetainUntilDate
このオブジェクトのオブジェクトロックの期限にする日付および時刻。
いいえ
objectLockLegalHoldStatus

指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。

  • ON
  • OFF
いいえ

<cfscript> storageService = getcloudService(application.awsCred,application.s3Conf) // バケットを作成 bucketStruct={ &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.objectdetailsdemo&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketObj=storageService.createBucket(bucketStruct) // バケットにオブジェクトをアップロード uploadStruct = { &quot;srcFile&quot; : &quot;#ExpandPath('./')#/Colors.jpg&quot;, &quot;key&quot; : &quot;key001&quot;, &quot;metadata&quot;: { &quot;filename&quot;: &quot;Colors.jpg&quot;, &quot;creator&quot;:&quot;john&quot;, &quot;place&quot;:&quot;london&quot;, &quot;creation_date&quot;:&quot;2020/04/20&quot;, &quot;filetype&quot;:&quot;image&quot; }, &quot;contentLanguage&quot;:&quot;en&quot;, &quot;websiteRedirectLocation&quot;:&quot;http://bucket&quot;, &quot;expires&quot;:&quot;2020-05-28&quot; } bucketObj.uploadFile(uploadStruct) // オブジェクトの詳細を取得 objectDetailsResponse=bucketObj.getObjectDetails(&quot;key001&quot;) writeDump(objectDetailsResponse) </cfscript>

ファイルの並列アップロード

バケットのオブジェクトをパーツに分けて、または並行してアップロードできます。5 MB ~ 5 TB のサイズでオブジェクトの並行アップロードを使用できます。安定した高帯域幅のネットワークで大きなオブジェクトをアップロードしている場合、並行アップロードを使用して、マルチスレッドのパフォーマンスを得るためにオブジェクトのパーツを並行してアップロードすることで、利用可能な帯域幅をより効率的に使用できます。

シンタックス

parallelUploadFile(parameterStruct)

パラメーター

パラメーター 説明 必須
srcFile アップロードするファイルの場所。 はい
chunkLengthInBytes コンテンツチャンクのサイズ。 いいえ
timeOutInSeconds アップロード操作のタイムアウト。 いいえ
acl

Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。

有効な値は、次のとおりです。

  • PRIVATE
  • PUBLIC_READ
  • PUBLIC_READ_WRITE
  • AUTHENTICATED_READ
  • AWS_EXEC_READ
  • BUCKET_OWNER_READ
  • BUCKET_OWNER_FULL_CONTROL
いいえ
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

有効な値は、次のとおりです。

  • STANDARD
  • REDUCED_REDUNDANCY
  • STANDARD_IA
  • ONEZONE_IA
  • INTELLIGENT_TIERING
  • GLACIER
  • DEEP_ARCHIVE

詳しくは、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

このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。

  • GOVERNANCE
  • COMPLIANCE
 
objectLockRetainUntilDate このオブジェクトのオブジェクトロックの期限にする日付および時刻。 いいえ
          objectLockLegalHoldStatus

指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。

  • ON
  • OFF
いいえ

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;bucket&quot; : &quot;bucket.parallel.upload&quot; } rootObj = storageService.createBucket(createBucketRequest) // 並列アップロード構造体 parallelUploadRequest = { &quot;srcFile&quot; : &quot;#ExpandPath('..')#/files/file.txt&quot;, &quot;chunkLengthInBytes&quot;: &quot;5e+6&quot;, &quot;timeOutInSeconds&quot;: &quot;60&quot;, &quot;key&quot;: &quot;key1&quot; } try{ uploadResponse = rootObj.parallelUploadFile(parallelUploadRequest) writeOutput(&quot;Parallel upload successful&quot;) 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 = { &quot;bucket&quot; : &quot;bucket.parallel.download&quot; } rootObj = storageService.createBucket(createBucketRequest) // 並列アップロード構造体 parallelUploadRequest = { &quot;srcFile&quot; : &quot;#ExpandPath('..')#/files/file.txt&quot;, &quot;chunkLengthInBytes&quot;: &quot;5e+6&quot;, &quot;timeOutInSeconds&quot;: &quot;60&quot;, &quot;key&quot;: &quot;key1&quot; } // オブジェクトを並列にアップロード rootObj.parallelUploadFile(parallelUploadRequest) // 並列ダウンロード構造体 parallelDownloadRequest = { &quot;key&quot; : &quot;key1&quot;, &quot;destinationFile&quot; : &quot;file.txt&quot;, &quot;chunkLengthInBytes&quot;: &quot;5e+6&quot; } downloadResponse=rootObj.parallelDownloadFile(parallelDownloadRequest) writeDump(downloadResponse) </cfscript>

ファイルのマルチパートアップロード

マルチパートアップロードを使用すると、単一のオブジェクトをパーツのセットとしてアップロードできます。各パーツは、オブジェクトのデータの隣接する部分です。

それらのオブジェクトパーツを独立して、任意の順序でアップロードできます。

詳しくは、AWS のマルチパートアップロードを参照してください。

シンタックス

multipartUpload(parameterStruct)

パラメーター

パラメーター 説明 必須
srcFile アップロードするファイルの場所。 はい
chunkLengthInBytes コンテンツチャンクのサイズ。 いいえ
timeOutInSeconds アップロード操作のタイムアウト。 いいえ
acl

Amazon S3 アクセスコントロールリスト(ACL)を使用すると、バケットおよびオブジェクトに対するアクセスを管理できます。

有効な値は、次のとおりです。

  • PRIVATE
  • PUBLIC_READ
  • PUBLIC_READ_WRITE
  • AUTHENTICATED_READ
  • AWS_EXEC_READ
  • BUCKET_OWNER_READ
  • BUCKET_OWNER_FULL_CONTROL
いいえ
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

有効な値は、次のとおりです。

  • STANDARD
  • REDUCED_REDUNDANCY
  • STANDARD_IA
  • ONEZONE_IA
  • INTELLIGENT_TIERING
  • GLACIER
  • DEEP_ARCHIVE

詳しくは、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

このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。

  • GOVERNANCE
  • COMPLIANCE
 
objectLockRetainUntilDate このオブジェクトのオブジェクトロックの期限にする日付および時刻。 いいえ
          objectLockLegalHoldStatus

指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。

  • ON
  • OFF
いいえ

<cfscript> storageService = cloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;bucket&quot; : &quot;bucket.parallel.multipartupload&quot; } rootObj = storageService.createBucket(createBucketRequest) // マルチパートアップロード構造体 mulitipartUploadRequest = { &quot;srcFile&quot; : &quot;#ExpandPath('..')#/files/file.mp4&quot;, &quot;chunkLengthInBytes&quot;: &quot;5e+6&quot;, &quot;timeOutInSeconds&quot;: &quot;2&quot;, &quot;key&quot;: &quot;key1&quot; } try{ uploadResponse = rootObj.multipartUpload(mulitipartUploadRequest) writeOutput(&quot;File uploaded sucessfully in multiple parts&quot;) writeDump(uploadResponse) } catch(any e){ writeDump(e) } </cfscript>

オブジェクトのアップロード

オブジェクトをバケットにアップロードします。

シンタックス

uploadObject(parameterStruct)

パラメーター

パラメーター 説明 必須
key
オブジェクトの一意の識別子。 はい
acl

オブジェクトに適用するための ACL。詳しくは、既定 ACL を参照してください。有効な値を次に示します。

  • PRIVATE
  • PUBLIC_READ
  • PUBLIC_READ_WRITE
  • AUTHENTICATED_READ
  • AWS_EXEC_READ
  • BUCKET_OWNER_READ
  • BUCKET_OWNER_FULL_CONTROL
いいえ
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

有効な値は、次のとおりです。

  • STANDARD
  • REDUCED_REDUNDANCY
  • STANDARD_IA
  • ONEZONE_IA
  • INTELLIGENT_TIERING
  • GLACIER
  • DEEP_ARCHIVE

詳しくは、S3 ストレージクラスを参照してください。

いいえ
websiteRedirectLocation
バケットが Web サイトとして設定されている場合は、同じバケットの別のオブジェクトまたは外部 URL へのリダイレクトリクエストを指定します。
いいえ
sseCustomerAlgorithm
オブジェクトを暗号化する際に使用するアルゴリズムを指定します。
いいえ
sseCustomerKey
S3 でデータの暗号化に使用する、お客様から提供された暗号化キーを指定します。
いいえ
ssekmsKeyId
AWS Key Management Service(AWS KMS)の ID を指定します。
いいえ
ssekmsEncryptionContext
オブジェクトの暗号化に使用する、AWS KMS の暗号化コンテキストを指定します。
いいえ
requestPayer
リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。
いいえ
tagging
オブジェクトのタグセット。キーと値のペアの構造体である必要があります。
いいえ
objectLockMode

このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。

  • GOVERNANCE
  • COMPLIANCE
いいえ
objectLockRetainUntilDate
このオブジェクトのオブジェクトロックの期限にする日付および時刻。
いいえ
object アップロードするオブジェクト。 いいえ
type オブジェクトのタイプ - json いいえ
useCustomSerializer

true または false。カスタムシリアライザーを使用するかどうかを指定します。デフォルト値は true です。カスタムシリアライザーは、XML のシリアル化解除に常に使用されます。false の場合、XML/JSON シリアル化解除はデフォルトの ColdFusion 動作を使用して実行されます。useCustomSerializer が false でその他のタイプが渡された場合、TypeNotSupportedException がスローされます。

詳しくは、シリアル化を参照してください。

いいえ
objectLockLegalHoldStatus

指定されたオブジェクトの適切な位置に訴訟ホールドがあるかどうかを示します。有効な値は、次のとおりです。

  • ON
  • OFF

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 rootObj=storageService.bucket(&quot;bucket.download.object&quot;,&quot;true&quot;) key = &quot;key12&quot; a=[&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,&quot;d&quot;]; // アップロード構造体を定義 uploadStruct = { &quot;type&quot;: &quot;json&quot;, &quot;object&quot; : a, &quot;key&quot; : key } // オブジェクトをアップロード try{ rootObj.uploadObject(uploadStruct) writeOutput(&quot;Object uploaded successfully&quot;) } catch(any e){ writeOutput(&quot;Failed to upload object&quot;) writeDump(e) } // ダウンロード構造体を定義 downloadStruct = { &quot;type&quot;: &quot;json&quot;, &quot;key&quot; : key } // オブジェクトをダウンロード try{ rootObj.downloadObject(downloadStruct) writeOutput(&quot;Object downloaded successfully&quot;) } catch(any e){ writeOutput(&quot;Failed to download object&quot;) 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(&quot;bucket.download.object&quot;,&quot;true&quot;) key = &quot;key12&quot; a=[&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,&quot;d&quot;]; // アップロード構造体を定義 uploadStruct = { &quot;type&quot;: &quot;json&quot;, &quot;object&quot; : a, &quot;key&quot; : key } // オブジェクトをアップロード try{ rootObj.uploadObject(uploadStruct) writeOutput(&quot;Object uploaded successfully&quot;) } catch(any e){ writeOutput(&quot;Failed to upload object&quot;) writeDump(e) } // ダウンロード構造体を定義 downloadStruct = { &quot;type&quot;: &quot;json&quot;, &quot;key&quot; : key } // オブジェクトをダウンロード try{ rootObj.downloadObject(downloadStruct) writeOutput(&quot;Object downloaded successfully&quot;) } catch(any e){ writeOutput(&quot;Failed to download object&quot;) writeDump(e) } </cfscript>

ディレクトリのアップロード

バケットのディレクトリをアップロードします。また、一括アップロードを実行することもできます。

シンタックス

uploadDirectory(parameterStruct)

パラメーター

パラメーター

説明

必須

します

アップロード中にオブジェクトキーに追加される接頭辞。

はい

sourceDirectory

アップロード元のディレクトリ。

はい

uploadNestedDirectory

true または false。メインのフォルダー内にサブディレクトリを含めるかどうかを指定します。

いいえ

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.b.four&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketObj=storageService.createBucket(createBucketRequest) // アップロードのリクエストパラメーターを定義 dirUploadReq = { &quot;prefix&quot; : &quot;test_bulk\&quot;, &quot;sourceDirectory&quot; : &quot;../files&quot;, &quot;uploadNestedDirectory&quot; : true } try{ uploadResponse=storageService.uploadDirectory(dirUploadReq) writeOutput(&quot;Directory uploaded successfully&quot;) writeDump(uploadResponse) } catch(any e){ writeDump(e) } </cfscript>

PutObjectLockConfiguration

指定されたバケットにオブジェクトロック設定を配置します。

詳しくは、公式ドキュメントを参照してください。

シンタックス

putObjectLockConfiguration(parameterStruct)

パラメーター

パラメーター

説明

必須

objectLockConfiguration

ObjectLockConfiguration パラメーターのルートレベルのタグ。

はい

objectLockEnabled

このバケットでオブジェクトロック設定が有効になっているかどうか。有効な値は、ENABLED です。

いいえ

defaultRetention

構造体には、次が含まれます。

mode:このオブジェクトに適用するオブジェクトロックモード。有効な値は、次のとおりです。

  • GOVERNANCE
  • COMPLIANCE

days:オブジェクトをロックする日数。

years:オブジェクトをロックする年数。

メモ:日数または年数の両方ではなく、どちらかを指定します。

いいえ

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.getobjectlock&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ &quot;srcFile&quot;:&quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot;:&quot;key161&quot; } bucketObj.uploadFile(uploadStruct) // オブジェクトロックを設定 putObjectLockRequest = { &quot;objectLockConfiguration&quot; : { &quot;objectLockEnabled&quot; : &quot;ENABLED&quot;, &quot;defaultRetention&quot; : { &quot;mode&quot; : &quot;GOVERNANCE&quot;, &quot;days&quot; : 31 } } } bucketObj.putObjectLockConfiguration(putObjectLockRequest) // オブジェクトロックを取得 objectLockResponse=bucketObj.getObjectLockConfiguration() writeDump(objectLockResponse) </cfscript>

getObjectLockConfiguration

バケットのオブジェクトロック設定を取得します。

詳しくは、公式ドキュメントを参照してください。

シンタックス

getObjectLockConfiguration()

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.getobjectlock&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ &quot;srcFile&quot;:&quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot;:&quot;key161&quot; } bucketObj.uploadFile(uploadStruct) // オブジェクトロックを設定 putObjectLockRequest = { &quot;objectLockConfiguration&quot; : { &quot;objectLockEnabled&quot; : &quot;ENABLED&quot;, &quot;defaultRetention&quot; : { &quot;mode&quot; : &quot;GOVERNANCE&quot;, &quot;days&quot; : 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 = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.acquirelegalhold&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ &quot;srcFile&quot;:&quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot;:&quot;key121&quot; } bucketObj.uploadFile(uploadStruct) // バージョニングを有効化 bucketObj.enableVersioning() // すべてのバージョンをリストアップ list=bucketObj.listAllVersions() // バージョン ID を取得 v_id=list.response[1].versionId // 訴訟ホールド取得リクエスト acquireLegalHoldRequest = { &quot;key&quot; : &quot;key121&quot;, &quot;versionId&quot; : &quot;#v_id#&quot;, &quot;legalHold&quot; : { &quot;status&quot; : &quot;ON&quot; }, &quot;requestPayer&quot; : &quot;REQUESTER&quot; } 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 = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.getlegalhold&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ &quot;srcFile&quot;:&quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot;:&quot;key141&quot; } bucketObj.uploadFile(uploadStruct) // バージョニングを有効化 bucketObj.enableVersioning() // すべてのバージョンをリストアップ list=bucketObj.listAllVersions() // バージョン ID を取得 v_id=list.response[1].versionId // オブジェクトの訴訟ホールドステータスを取得 getLegalHoldRequest = { &quot;key&quot; : &quot;key141&quot;, &quot;versionId&quot; : &quot;#v_id#&quot;, &quot;requestPayer&quot; : &quot;REQUESTER&quot; } getLegalHoldResponse=bucketObj.getLegalHold(getLegalHoldRequest) writeDump(getLegalHoldResponse) </cfscript>

保持ロックの獲得

オブジェクトにオブジェクト保持設定を配置します。

詳しくは、公式ドキュメントを参照してください。

シンタックス

acquireRetentionLock(parameterStruct)

パラメーター

パラメーター

説明

必須

key

このオブジェクト保持設定を適用したいオブジェクトのキー名。

はい

versionID

このオブジェクト保持設定を適用したいオブジェクトのバージョン ID。

いいえ

retention

構造体には、次が含まれます。

  • mode:指定されたオブジェクトの保持モード。値は、GOVERNANCE または COMPLIANCE です。
  • retainUntilDate:このオブジェクトロック保持の期限が切れる日付。

いいえ

requestPayer

リクエストに対して費用を請求されることをリクエスターが把握していることを確認します。

いいえ

bypassGovernanceRetention

この操作がガバナンスモードの制限をバイパスする必要があるかどうか。

 

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.acquireretentionlock&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットにオブジェクトをアップロード uploadStruct={ &quot;srcFile&quot;:&quot;#ExpandPath('./')#/s3-notes.pdf&quot;, &quot;key&quot;:&quot;key131&quot; } bucketObj.uploadFile(uploadStruct) // バージョニングを有効化 bucketObj.enableVersioning() // すべてのバージョンをリストアップ list=bucketObj.listAllVersions() // バージョン ID を取得 v_id=list.response[1].versionId retainDate=DateFormat(DateAdd(&quot;d&quot;,8,now()),&quot;yyyy-mm-dd&quot;) retentionRequestStruct = { &quot;key&quot; : &quot;key131&quot;, &quot;versionId&quot; : &quot;#v_id#&quot;, &quot;retention&quot; : { &quot;mode&quot; : &quot;GOVERNANCE&quot;, &quot;retainUntilDate&quot; : &quot;#retainDate#&quot; }, &quot;requestPayer&quot; : &quot;REQUESTER&quot;, &quot;bypassGovernanceRetention&quot; : 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 = { &quot;bucket&quot; : &quot;bucket.demo.lock&quot;, &quot;objectLockEnabledForBucket&quot; : &quot;true&quot; } rootObj=storageService.createBucket(createBucketRequest) //rootObj=storageService.bucket(&quot;cfqa2.test123456&quot;,true); rootObj.enableVersioning() // ファイルをアップロード uploadRequest = { &quot;srcFile&quot; : &quot;test.txt&quot;, &quot;key&quot; : &quot;test&quot;, &quot;validateContentMD5&quot;:&quot;true&quot;, &quot;objectLockMode&quot; : &quot;GOVERNANCE&quot;, &quot;objectLockRetainUntilDate&quot; : &quot;2019-12-11&quot;, &quot;objectLockLegalHoldStatus&quot; : &quot;ON&quot; } rootObj.uploadFile(uploadRequest); //writedump(uploadResponse) request1 = { &quot;objectLockConfiguration&quot; : { &quot;objectLockEnabled&quot; : &quot;ENABLED&quot;, &quot;defaultRetention&quot; : { &quot;mode&quot; : &quot;GOVERNANCE&quot;, &quot;days&quot; : &quot;2&quot;, &quot;years&quot;: &quot;1&quot; } } } rootObj.putObjectLockConfiguration(request1) retentionRequest = { &quot;key&quot; : &quot;test&quot;, &quot;retention&quot; : { &quot;mode&quot; : &quot;GOVERNANCE&quot;, &quot;retainUntilDate&quot; : &quot;{ts '2019-11-27 12:13:50'}&quot; }, &quot;bypassGovernanceRetention&quot; :&quot;true&quot; } rootObj.acquireRetentionLock(retentionRequest) getRetentionRequest={ &quot;key&quot; : &quot;test&quot; } writedump(rootObj.getRetentionLock(getRetentionRequest)) </cfscript>

リクエスター支払い

一般に、バケットに関連するストレージおよびデータ転送コストはバケット所有者が支払います。バケット所有者は、バケットをリクエスター支払いバケットとして設定できます。リクエスター支払いバケットの場合、リクエストおよびバケットからのデータのダウンロードにかかるコストは、バケット所有者ではなくリクエスターが支払います。データの保存にかかるコストは、常にバケット所有者が支払います。

通常、データを共有したいが、他のユーザーがそのデータにアクセスする際に発生する費用を負担したくない場合に、バケットをリクエスター支払いに設定します。例えば、郵便番号リスト、参照データ、地理空間情報、Web クローリングデータなど、大規模なデータセットを利用できるようにする際に、リクエスター支払いバケットを使用します。

バケットでリクエスター支払いを有効にすると、そのバケットへの匿名アクセスは許可されません。

リクエスター支払いバケットに関するすべてのリクエストを認証する必要があります。リクエスト認証により、Amazon S3 は、リクエスターを識別し、リクエスター支払いバケットの使用に対して課金できます。

enableRequesterPay

バケットに対するリクエスター支払いを有効にします。

シンタックス

enableRequesterpay()

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;sg.bucket&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 myobj=storageService.createBucket(createBucketRequest) // バケットでリクエスター支払いを有効化 myobj.enableRequesterpay() // リクエスター支払いステータスを取得 getResponse=myobj.getRequesterPayStatus() writeDump(getResponse) </cfscript> 

disableRequesterPay

バケットに対するリクエスター支払いを無効にします。

シンタックス

disableRequesterPay()

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.disablerequester&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットでリクエスター支払いを有効化 bucketObj.enableRequesterpay() // バケットでリクエスター支払いを無効化 try{ disableRequesterPayResponse=bucketObj.disableRequesterPay() writeOutput(&quot;Requester pay disabled&quot;) writeDump(disableRequesterPayResponse) } catch (any e){ writeOutput(&quot;Unable to disable requester pay&quot;) writeDUmp(e) } </cfscript>

getRequesterPayStatus

バケットでリクエスター支払いが有効になっているかどうかを確認します。

シンタックス

getRequesterPayStatus()

<cfscript> storageService = cloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.getrequester&quot;, &quot;objectLockEnabledForBucket&quot; : 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 = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.getpublicaccess&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketobj=storageService.createBucket(createBucketRequest) pubAccessReq = { &quot;publicAccessBlockConfiguration&quot; : { &quot;blockPublicAcls&quot; : true, &quot;ignorePublicAcls&quot; : true, &quot;blockPublicPolicy&quot; : true, &quot;restrictPublicBuckets&quot; : true } } try{ accessBlockResponse=bucketobj.putSecurityAccessBlock(pubAccessReq) writeOutput(&quot;Block to public access enforced successfully&quot;) writeDump(accessBlockResponse) } catch(any e){ writeOutput(&quot;Failed to block public access&quot;) writeDump(e) } // ブロックの詳細を取得 getBlockResponse=bucketobj.getSecurityAccessBlock() writeDump(getBlockResponse) </cfscript>

getSecurityAccessBlock

バケットに対するパブリックアクセス設定を取得します。詳しくは、GetPublicAccessBlock を参照してください。

シンタックス

getSecurityAccessBlock()

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.getpublicaccess&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketobj=storageService.createBucket(createBucketRequest) pubAccessReq = { &quot;publicAccessBlockConfiguration&quot; : { &quot;blockPublicAcls&quot; : true, &quot;ignorePublicAcls&quot; : true, &quot;blockPublicPolicy&quot; : true, &quot;restrictPublicBuckets&quot; : true } } try{ accessBlockResponse=bucketobj.putSecurityAccessBlock(pubAccessReq) writeOutput(&quot;Block to public access enforced successfully&quot;) writeDump(accessBlockResponse) } catch(any e){ writeOutput(&quot;Failed to block public access&quot;) writeDump(e) } // ブロックの詳細を取得 getBlockResponse=bucketobj.getSecurityAccessBlock() writeDump(getBlockResponse) </cfscript>

S3 バケットの位置の取得

バケットを含むリージョンを取得します。

詳しくは、GetBucketLocation を参照してください。

シンタックス

getLocation()

<cfscript> storageService = getCloudService(application.awsCred, application.s3Conf) // バケットを作成 createBucketRequest = { &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.loc&quot;, &quot;objectLockEnabledForBucket&quot; : true } // バケットを作成 bucketObj=storageService.createBucket(createBucketRequest) // バケットの位置を取得 bucketLoc=bucketObj.getLocation() writeDump(bucketLoc) </cfscript>

オブジェクトのメタデータの取得

バケットのオブジェクトのメタデータを取得します。オブジェクトのアップロード中に、オブジェクトのメタデータが既に設定されています。

シンタックス

getObjectMetadata(parameterStruct)

パラメーター

パラメーター

説明

必須

key

オブジェクトがアップロードされた際に使用したキー。

はい

versionId

オブジェクトに関連付けられたバージョン ID。

いいえ

<cfscript> storageService = cloudService(application.awsCred,application.s3Conf) // バケットを作成 bucketStruct={ &quot;acl&quot;:&quot;PRIVATE&quot;, &quot;bucket&quot; : &quot;bucket.demo.objectmetadatademo&quot;, &quot;objectLockEnabledForBucket&quot; : true } bucketObj=storageService.createBucket(bucketStruct) // バケットにオブジェクトをアップロード uploadStruct={ &quot;srcFile&quot; : &quot;#ExpandPath('./')#/Colors.jpg&quot;, &quot;key&quot; : &quot;key001&quot;, &quot;metadata&quot;: { &quot;filename&quot;: &quot;Colors.jpg&quot;, &quot;creator&quot;:&quot;john&quot;, &quot;place&quot;:&quot;london&quot;, &quot;creation_date&quot;:&quot;2020/04/20&quot;, &quot;filetype&quot;:&quot;image&quot; } } bucketObj.uploadFile(uploadStruct) // オブジェクトのメタデータを取得 objectMetadataResponse=bucketObj.getObjectMetadata(&quot;key001&quot;) 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 = { &quot;bucket&quot; : &quot;bucket.parallel.getpresignedurl&quot; } rootObj = storageService.createBucket(createBucketRequest) // ファイルをアップロード src = &quot;#ExpandPath('..')#/files/file.txt&quot; key = &quot;key12&quot; uploadStruct = { &quot;srcFile&quot; : src, &quot;key&quot; : key } rootObj.uploadFile(uploadStruct) // 署名付き URL 構造体 getPresignedUrlRequest = { &quot;duration&quot;: &quot;1d&quot;, // 1 日 &quot;key&quot;:key } getPresignedUrlResp = rootObj.generateGetPresignedUrl(getPresignedUrlRequest) writeDump(getPresignedUrlResp) </cfscript>

generatePutPresignedUrl

オブジェクトを配置するための URL を生成します。

シンタックス

generatePutPresignedUrl(parameterStruct)

パラメーター

パラメーター

説明

必須

duration

URL の継続時間(日数)。

いいえ

key

オブジェクトに関連付けられたキー。

はい

<cfscript> storageService = getCloudService(application.awsCred,application.s3Conf) // バケットを作成 createBucketRequest = { &quot;bucket&quot; : &quot;bucket.parallel.putpresignedurl&quot; } rootObj = storageService.createBucket(createBucketRequest) putPresignedReq = { &quot;duration&quot;: &quot;1d&quot;, // 1 日 &quot;key&quot; : &quot;key12&quot; } putPresignedUrlResp = rootObj.generatePutPresignedUrl(putPresignedReq); writedump(putPresignedUrlResp) </cfscript>

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2025

Adobe MAX Japan
クリエイターの祭典

2025 年 2 月 13 日
東京ビッグサイト