パラメーター
概要
Google Cloud Storage では、データの保存と取得をいつでも行えます。Google Cloud Storage を使用すると、コンテンツの提供、障害回復やアーカイブを目的としたデータの格納、ダウンロード可能なデータの大規模クラスターの作成などが可能です。
ColdFusion(2021 リリース)では、AWS S3 ストレージと Azure BLOB ストレージをサポートしています。ColdFusion(2023 リリース)では、GCP Storage サービスを追加することでマルチクラウドサービスの機能を拡張して、様々なクラウドストレージサービスにアクセスできるようになりました。
AWS S3 と同様に、GCP Storage もバケットとオブジェクトを扱います。
- バケット:各プロジェクトには、複数のバケット(オブジェクトを格納するためのコンテナ)を含めることができます。例えば、アプリケーションで生成するすべての画像ファイル用に写真バケットを作成し、それとは別にビデオバケットを作成するといった場合です。
- オブジェクト:個々のファイル(例えば、holiday.png という画像など)。
はじめに
gcpstorage パッケージのインストール
パッケージ gcpstorage をインストールするには、以下の方法のいずれかを使用します。
ColdFusion Administrator
- ColdFusion Administrator/パッケージマネージャーに移動します。
- 「利用可能なパッケージ」セクションで、gcpstorage を検索します。
- パッケージを選択して、「インストール 」をクリックします。
インストールされたパッケージは、「利用可能なパッケージ」セクションに表示されます。
ColdFusion パッケージマネージャー
次の手順に従います。
- <CF_HOME>/cfusion/bin に移動します。次のコマンドを入力します。
- Windows:cfpm.bat
- Windows 以外の場合:/cfpm.sh
- コマンド install gcpstorage を入力します。
パッケージがインストールされるまで待ちます。
GCP Storage にアクセスするための資格情報の取得
GCP を操作する場合、資格情報を検証し、リクエストしているリソースにアクセスするための権限を持っているかどうかをチェックするために、GCP セキュリティ資格情報を指定します。
GCP は、セキュリティ資格情報を使用して、リクエストを認証および承認します。
詳しくは、GCP API キーの概要を参照してください。
クラウドサービス資格情報および設定の追加
ColdFusion には、様々なクラウドサービスにアクセスするためのオブジェクトを作成するためにハンドルを提供するメソッド getCloudService() があります。
サービスハンドルのシンタックスを次に示します。
service=getCloudService(cloudCred,cloudConfig)。ここで、
- cloudCred:クラウドサービスの資格情報を定義します。構造体または文字列です(資格情報エイリアスとも呼ばれます)。
- cloudConfig:クラウドサービス設定の詳細を定義します。構造体または文字列です(設定エイリアスとも呼ばれます)。
ColdFusion Administrator
資格情報の設定
ColdFusion Administrator で、データとサービス/クラウド資格情報をクリックします。
エイリアスは、クラウドサービスおよびその設定の詳細の名前付き表現です。ColdFusion Administrator を使用して設定エイリアスを設定できます。
詳細を入力したら、「資格情報を追加」をクリックします。
設定オプションの設定
ColdFusion Administrator で、データとサービス/クラウド設定をクリックします。
設定エイリアス、ベンダー、サービスの名前など、次の詳細を入力します。
オブジェクトの作成
GCP 資格情報および設定オプションのエイリアスを作成したら、getCloudService API を使用してオブジェクトを作成し、次のコードを CFM に含めることができます。
storageObject= getCloudService("gcpCred", "gcpConf")
Application.cfc
GCP 資格情報および設定オプションを記載したファイルを Application.cfc で指定できます。次に例を示します。
component{
this.name ="gcp"
void function onApplicationStart(){
application.gcpCred = {
projectId : "my-project",
credentialJsonFilePath : "path-to-creds.json"
};
alias.gcpConf = {
serviceName : "STORAGE",
alias : "gcpConfig",
retrySettings : {
initialRetryDelay : "2s",
initialRpcTimeout : "2s",
maxAttempts : 5 ,
maxRetryDelay : "30s",
maxRpcTimeout : "30s",
retryDelayMultiplier : 2 ,
rpcTimeoutMultiplier : 2,
totalTimeOut : "60s"
},
transportOptions : {
connectTimeout : "5000",
readTimeout : "5000"
}
};
}
}
オブジェクトを作成します。次のスニペットを参考にしてください。
storageObject = getCloudService(application.gcpCred, application.gcpConf)
CFM ページ上
CFM ページでは、以下に示す 4 とおりの方法のいずれかで GCP 資格情報および設定オプションを指定できます。
資格情報エイリアスと設定エイリアス
GCP 資格情報および設定オプション用のエイリアスを(Application.cfc または Administrator で)作成したら、次に示すように、getCloudService ハンドルでそれらのエイリアスを使用できます。
エイリアスの作成場所を、Application.cfc か Administrator のどちらかで指定します。
<cfscript> // 資格情報エイリアスと設定エイリアスを ColdFusion Administrator で定義 storageObject=getCloudService("gcpCred","gcpConf") // 以下にコードを記述 ........... </cfscript>
資格情報エイリアスと設定構造体
<cfscript>
// サービス資格情報エイリアスとサービス設定用構造体を使用
gcpConf = {
"alias":"gcpConf",
"serviceName" : "STORAGE"
}
storageObject= getCloudService("gcpCred", gcpConf)
// 以下にコードを記述
.....................
</cfscript>
設定エイリアスと資格情報構造体
<cfscript>
// サービス設定エイリアスとサービス資格情報用構造体を使用
// GCP 資格情報
gcpCreds = {
"vendorName":"GCP",
"alias": "gcpCred",
"projectId":"1234",
" credentialJsonFilePath ": "file path"
}
storageObject= getCloudService(gcpCreds, "gcpConf")
// 以下にコードを記述
.....................................
</cfscript>
資格情報構造体と設定構造体
<cfscript>
// クラウド資格情報用構造体とクラウド設定用構造体を使用
gcpCreds = {
"vendorName":"GCP",
"alias": "gcpCred",
"projectId":"1234",
" credentialJsonFilePath ": "file path"
}
gcpConf = {
"alias":"gcpConf",
"serviceName" : "STORAGE",
"clientOverrideConfig":{
"retryPolicy":{
"numRetries":4
}
},
"httpClientConfig":{
"maxConnections":50
}
}
storageObject= getCloudService(gcpCreds, gcpConf)
// 以下にコードを記述
...................................................................
</cfscript>
CFSetup を使用した認証情報と設定の追加
追加:
- cloudconfiguration:add cloudconfigutaion alias=gcp_config serviceName=STORAGE <cf_alias_name>
- cloudconfiguration:add cloudconfigutaion alias=gcp_config serviceName=STORAGE maxRpcTimeout=50s retryDelayMultiplier=5 maxAttempts=8 maxRetryDelay=40s rpcTimeoutMultiplier=3 totalTimeout=50s <cf_alias_name>
- cloudcredential:add cloudcredential vendorName=”GCP” alias=<cloudcredential_alias> projectId=<project_id> credentialJSONFilePath=<credential_JSON_File_Path> <cf_alias_name>
表示:
- cloudconfiguration:show cloudconfiguration <cf_alias_name>
- cloudcredential:show cloudcredential <cloudcredential_name>
設定:
- cloudconfiguration:set cloudconfiguration <cloudconfiguration_name> initialRetryDelay=2s initialRpcTimeout=40s maxAttempts=5 maxRetryDelay=30s maxRpcTimeout=40s retryDelayMultiplier=3 rpcTimeoutMultiplier=2 totalTimeout=40s <cf_alias_name>
- cloudcredential:set cloudcredential <cloudcredential_name> projectId=<project_id> credentialJSONFilePath=<credential_JSON_File_Path> <cf_alias_name>
取得:
- cloudconfiguration:get cloudconfiguration <cloudconfiguration_name> <cf_alias_name>
- cloudcredential:get cloudcredential <cloudcredential_name> <cf_alias_name>
ストレージオブジェクト用の API
説明
ルートオブジェクトを作成します。ルートが存在しない場合は、ルートが作成されます。
シンタックス
root(bucketname,createIfNotExists)
戻り値
バケットオブジェクト。
パラメーター
- bucketname:作成するバケットの名前。
- createIfNotExists:true または false。バケットが存在しない場合は、作成されます。
例
<cfscript> storageService = getCloudService(application.gcpCred,application.gcpConf) rootObj=storageService.root("bucket_test",true); </cfscript>
説明
追加のパラメーターを使用してルートオブジェクトを取得します。
シンタックス
createRoot(requestParameters)
戻り値
バケットオブジェクト。
パラメーター
|
|
説明 |
必須 |
|
name |
作成するバケットの名前。 |
はい |
|
acl |
バケットとオブジェクトにアクセスできるユーザーと、ユーザーのアクセスレベルを指定します。有効な値は次のとおりです。
詳しくは、GCP Storage アクセス制御リストを参照してください。 |
いいえ |
|
defaultAcl |
毎回 ACL をセットアップするのを避けるには、デフォルトのオブジェクト ACL を設定します。デフォルトのオブジェクト ACL を変更してから、バケットにオブジェクトを追加できます。詳しくは、デフォルトの ACL を参照してください。 |
いいえ |
|
enable |
バケットのバージョン管理を有効にします。true または false。 |
いいえ |
|
requesterPays |
バケットでリクエスト元による支払いを有効にします。 |
いいえ |
|
indexPage |
バケットの作成を確認するページの URL。 |
いいえ |
|
notFoundPage |
バケットの作成に失敗したときに表示されるページの URL。 |
いいえ |
|
rules |
デュアルリージョン Cloud Storage バケットのレプリケーション設定を指定します。 |
いいえ |
|
rpo |
|
いいえ |
|
storageClass |
オブジェクトのストレージクラス。有効な値は STANDARD、NEARLINE、COLDLINE、ARCHIVE のいずれかです。詳しくは、ストレージクラスを参照してください。 |
いいえ |
|
location |
作成するバケットの場所。 |
いいえ |
|
cors |
バケットの CORS 設定。詳しくは、CORS の設定を参照してください。 |
いいえ |
|
labels |
バケットに一意のラベルとして割り当てられるキーと値のペア。 |
いいえ |
|
defaultKmsKeyName |
このオブジェクトの暗号化に使用されるクラウド KMS キー(オブジェクトがそのようなキーで暗号化されている場合)。 |
いいえ |
|
defaultEventBasedHold |
オブジェクトがイベントベースの保留の対象であるかどうかを示します。 |
いいえ |
|
retentionPeriod |
保持ポリシーに基づいてバケットを削除できる日時。 |
いいえ |
|
iamConfiguration |
バケットとオブジェクトへのアクセスを制御します。 |
いいえ |
|
logging |
バケットのログを有効にします。 |
いいえ |
|
customPlacementConfig |
デュアルリージョンバケットを構成するリージョンを設定または取得するためのクエリ文字列パラメーター。詳しくは、カスタムプレースメントを参照してください。 |
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
createBucketStruct = {
"name" : "bucket_test",
"storageClass" : "STANDARD",
"location" : "US",
"requesterPays" : "false",
"enable" : "false",
"defaultEventBasedHold" : "false",
"labels" : {
"name" : "test_bucket",
"owner" : "user1"
},
"retentionPeriod" : "10",
"customPlacementConfig" : ["US-EAST1","US-WEST1"],
"iamConfiguration" : {
"isUniformBucketLevelAccessEnabled" : true,
"publicAccessPrevention" : "INHERITED"
}
}
rootObj2=storageService.createRoot(createBucketStruct);
</cfscript>
説明
バケットを作成します。
シンタックス
bucket(bucketName,createIfNotExists)
戻り値
バケットオブジェクト。
パラメーター
- bucketname:作成するバケットの名前。
- createIfNotExists:true または false。バケットが存在しない場合は、作成されます。
例
<cfscript> storageService = getCloudService(application.gcpCred,application.gcpConf) bucketObj=storageService.bucket("bucket_test",true); </cfscript>
説明
追加のパラメーターを使用してバケットを作成します。
シンタックス
createBucket(requestParameters)
戻り値
バケットオブジェクト。
パラメーター
|
パラメーター |
説明 |
必須 |
|
name |
作成するバケットの名前。 |
はい |
|
acl |
バケットとオブジェクトにアクセスできるユーザーと、ユーザーのアクセスレベルを指定します。有効な値は次のとおりです。
詳しくは、GCP Storage アクセス制御リストを参照してください。 |
いいえ |
|
defaultAcl |
毎回 ACL をセットアップするのを避けるには、デフォルトのオブジェクト ACL を設定します。デフォルトのオブジェクト ACL を変更してから、バケットにオブジェクトを追加できます。詳しくは、デフォルトの ACL を参照してください。 |
いいえ |
|
enable |
バケットのバージョン管理を有効にします。true または false。 |
いいえ |
|
requesterPays |
バケットでリクエスト元による支払いを有効にします。 |
いいえ |
|
indexPage |
バケットの作成を確認するページの URL。 |
いいえ |
|
notFoundPage |
バケットの作成に失敗したときに表示されるページの URL。 |
いいえ |
|
rules |
デュアルリージョン Cloud Storage バケットのレプリケーション設定を指定します。 |
いいえ |
|
rpo |
|
いいえ |
|
storageClass |
オブジェクトのストレージクラス。有効な値は STANDARD、NEARLINE、COLDLINE、ARCHIVE のいずれかです。詳しくは、ストレージクラスを参照してください。 |
いいえ |
|
location |
作成するバケットの場所。 |
いいえ |
|
cors |
バケットの CORS 設定。詳しくは、CORS の設定を参照してください。 |
いいえ |
|
labels |
バケットに一意のラベルとして割り当てられるキーと値のペア。 |
いいえ |
|
defaultKmsKeyName |
このオブジェクトの暗号化に使用されるクラウド KMS キー(オブジェクトがそのようなキーで暗号化されている場合)。 |
いいえ |
|
defaultEventBasedHold |
オブジェクトがイベントベースの保留の対象であるかどうかを示します。 |
いいえ |
|
retentionPeriod |
保持ポリシーに基づいてバケットを削除できる日時。 |
いいえ |
|
iamConfiguration |
バケットとオブジェクトへのアクセスを制御します。 |
いいえ |
|
logging |
バケットのログを有効にします。 |
いいえ |
|
customPlacementConfig |
デュアルリージョンバケットを構成するリージョンを設定または取得するためのクエリ文字列パラメーター。詳しくは、カスタムプレースメントを参照してください。 |
いいえ |
例
<cfscript >
storageService = getCloudService(application.gcpCred, application.gcpConf)
createBucketStruct = {
"name": "bucket_test",
"storageClass": "STANDARD",
"location": "US",
"rules": [{
"action": {
"type": "delete"
},
"condition": {
"daysSinceNoncurrentTime": 7
}
}],
"acl": [{
"entity": {
"project": {
projectrole: "EDITORS",
projectid: "101345678996"
}
},
"role": "READER"
}],
"defaultAcl": [{
"entity": {
"user": "test@xyz.com"
},
"role": "OWNER"
}]
}
rootObj2 = storageService.createBucket(createBucketStruct);
</cfscript>
説明
ストレージアカウント内のすべてのバケットのリストを取得します。
シンタックス
listAll()
戻り値
バケットのリスト。
例
<cfscript>
cred = {
projectId : "my-gcp-project",
credentialJsonFilePath : "File-path-creds.json"
};
conf = {
serviceName : "storage"
};
st = getCloudService(cred, conf);
arrayBuckets=st.listall()
writeDump(arrayBuckets)
</cfscript>
説明
いくつかの条件に基づいて、ストレージアカウント内のバケットのリストを取得します。
シンタックス
listAll(requestParameters)
戻り値
バケットのリスト。
パラメーター
|
パラメーター |
説明 |
必須 |
|
fields |
フィールド(ACL、BILLING など)の配列。 |
いいえ |
|
pageSize |
1 つのページに表示するバケットの数を表す数値。 |
いいえ |
|
pageToken |
表示する大きな結果の一部を表します。 |
いいえ |
|
prefix |
この接頭辞で始まるバケットをフィルタリングします。 |
いいえ |
|
userProject |
返されるプロパティのセット。有効な値は次のとおりです。
|
いいえ |
例
<cfscript>
cred = {
projectId : "my-gcp-project",
credentialJsonFilePath : "File-path-creds.json"
};
conf = {
serviceName : "STORAGE"
};
storageService = getCloudService(cred, conf);
paramStruct={"prefix":"cfbucket","pageSize":50}
writeDump("#storageService.listAll(paramStruct)#");
</cfscript>
説明
バケットの削除.
シンタックス
delete(bucketName)
戻り値
ステータスを含んだ構造体。
パラメーター
- bucketName:削除するバケットの名前。
例
<cfscript> storageService = getCloudService(application.gcpCred,application.gcpConf) bucketList=storageService.delete("bucket_test"); </cfscript>
例:delete(構造体の場合)
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketOption = {
bucketName : "bucket_test",
versions : true,
forceDelete : {
timeout : 60,
unit : "SECONDS"
}
}
delresponse= storageService.delete(bucketOption)
</cfscript>
バケットオブジェクト用の API
説明
バケット内のすべてのオブジェクトのリストを取得します。
シンタックス
listAll()
戻り値
オブジェクトのリストを含んだ構造体。
例
<cfscript> storageService = getCloudService(application.gcpCred,application.gcpConf) bucketList=storageService.listAll(); </cfscript>
説明
構造体を渡して、バケット内のすべてのオブジェクトをリストします。
戻り値
オブジェクトのリストを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
|
fields |
フィールド(ACL、BILLING、CORS など)の配列。 |
|
pageSize |
1 つのページに表示するレコードの数。 |
|
pageToken |
返されたリスト内の最後の項目(バケット)の名前を含んだエンコード済みのフィールド。 |
|
prefix |
この接頭辞で始まる名前を持つバケットが表示されます。 |
|
userProject |
GCP プロジェクトの名前。 |
例
<cfscript >
storageService = getCloudService(application.gcpCred, application.gcpConf)
bucketObj = storageService.bucket("bucket_test", true);
liststruct = {
currentDirectory: true,
prefix: "key",
delimeter: "1",
pagesize: 1,
versions: true,
fields: ["BUCKET", "ETAG"],
userproject: "project_id",
startoffset: "key23/43",
endoffset: "key34"
}
objList1 = bucketObj.listAll(liststruct);
</cfscript>
説明
バケット内のオブジェクトを削除します。
シンタックス
delete(objectKey)
戻り値
ステータスを含んだ構造体。
パラメーター
- objectKey:オブジェクトを識別するキー。
例
<cfscript >
storageService = getCloudService(application.gcpCred, application.gcpConf)
bucketObj = storageService.bucket("bucket_test", true);
uploadStruct = {
"srcFile": SRC_FILE_PATH,
"blobInfo": {
"blobId": {
"name": "key123"
}
}
}
uploadResponse = bucketObj.uploadFile(uploadStruct);
delResponse = bucketObj.delete(key123);
</cfscript>
説明
バケット内のオブジェクトを削除します。メソッドでリクエストパラメーターの構造体を使用します。
シンタックス
delete(requestParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
|
bucketName |
削除するバケットの名前。 |
|
metaGenerationMatch |
メタデータのバージョンを識別します。一致する場合は true。 |
|
metagenerationNotMatch |
true または false。 |
|
versions |
オブジェクトのバージョン。 |
|
userProject |
GCP プロジェクトの名前。 |
|
forceDelete |
true または false。オブジェクトを強制的に削除します。 |
例
<cfscript >
storageService = getCloudService(application.gcpCred, application.gcpConf)
bucketObj = storageService.bucket("bucket_test", true);
uploadStruct = {
"srcFile": SRC_FILE_PATH,
"blobInfo": {
"blobId": {
"name": "key123"
}
}
}
uploadResponse = bucketObj.uploadFile(uploadStruct);
deleteOptions = {
blobId: {
name: "key123",
generation: GENERATION_ID
}
}
delResponse = bucketObj.delete(deleteOptions);
</cfscript>
説明
バケットの場所を取得します。
シンタックス
getLocation()
戻り値
ステータスと場所を含んだ構造体。
例
<cfscript> storageService = getCloudService(application.gcpCred,application.gcpConf) bucketObj=storageService.bucket("bucket_test",true); objLocation=bucketObj.getLocation(); </cfscript>
説明
ファイルをバケットにアップロードします。
シンタックス
UploadFile(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
srcFile |
バケットにアップロードしたいファイルのパス。 |
はい |
|
buffersize |
バッファーオブジェクトのサイズ。 |
|
|
key |
オブジェクトの一意の識別子。 |
はい |
|
blobInfo |
次のメンバーを持つ blobId の構造体。
|
はい |
|
acl |
バケットに対するアクセス制御。詳しくは、こちらのドキュメントを参照してください。 |
いいえ |
|
cacheControl |
ここで定義されているように、キャッシュ動作を指定します。 |
いいえ |
|
contentDisposition |
ここで定義されているように、オブジェクトのコンテンツ形式を指定します。 |
いいえ |
|
contentEncoding |
ここで定義されているように、オブジェクトのエンコーディングタイプを指定します。 |
いいえ |
|
contentLanguage |
アップロードするオブジェクトの言語。 |
いいえ |
|
contentType |
応答オブジェクトの HTTPS コンテンツタイプ。 |
いいえ |
|
crc32 |
オブジェクトの crc32 ハッシュ。 |
いいえ |
|
crc32HexString |
オブジェクトの crc32 16 進文字列。 |
いいえ |
|
eventBasedHold |
オブジェクトに設定されているメタデータフラグであるオブジェクト保留。詳しくは、オブジェクト保留を参照してください。次の 2 種類の保留があります。
|
いいえ |
|
md5 |
オブジェクトの MD5 チェックサム。 |
いいえ |
|
md5HexString |
オブジェクトの MD5 16 進文字列。 |
いいえ |
|
metadata |
オブジェクトのキーと値のペアを表す構造体。 |
いいえ |
|
storageClass |
オブジェクトのストレージクラス。有効な値は STANDARD、NEARLINE、COLDLINE、ARCHIVE のいずれかです。詳しくは、ストレージクラスを参照してください。 |
いいえ |
|
temporaryHold |
オブジェクトに一時的な保留を設定するかどうか。 |
いいえ |
|
timestorageclassupdated |
オブジェクトのストレージクラスが最後に変更された時刻。 |
いいえ |
|
customtime |
オブジェクトのユーザー定義タイムスタンプ。 |
いいえ |
|
blobWriteOption |
次のメンバーを持つ構造体。
|
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
uploadRequest={
"srcFile" : <SRC_FILE_PATH>,
"blobInfo" : {
"blobId" : {
"bucket" : "bucket_test",
"name" : "key12"
},
"crc32" : "aR2qLw==",
"crc32HexString" : "615232714c773d3d",
"eventBasedHold" : false,
"md5" : "sQqNsWTgdUEFt6mb5y4/5Q==",
"md5HexString" : "7351714e735754676455454674366d623579342f35513d3d",
"metadata" : {
"key1" : "value1"
},
"storageClass" : "STANDARD",
"temporaryHold" : "false",
"acl" : [{
"entity" : {
"group" : GROUP_ID
},
"role" : "READER"
}]
},
"blobWriteOption" : [{
crc32cMatch : true,
detectContentType : true,
encryptionKey:"TIbv/fjexq+VmtXzAlc63J4z5kFmWJ6NdAPQulQBT7g=",
userProject: "projectid"
}]
}
uploadResponse=bucketObj.uploadFile(uploadRequest);
</cfscript>
説明
オブジェクトをバケットにアップロードします。
シンタックス
uploadObject(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
object |
バケットにアップロードするオブジェクト。 |
はい |
|
blobInfo |
次の構造体。 "blobId" : { |
はい |
|
blobWriteOption |
BLOB の書き込みオプション。 |
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
uploadStruct = {
"object" : serializeJSON({empName="James", age="26"}),
"blobInfo" : {
"blobId" : {
"name" : "key123"
},
"storageClass" : "STANDARD",
"temporaryHold" : "false"
}
}
uploadResponse=bucketObj.uploadObject(uploadStruct);
</cfscript>
説明
1 つのバケットから 1 つのファイルをダウンロードします。
シンタックス
downloadToFile(structParameters)
戻り値
ステータスを含んだ構造体
パラメーター
|
パラメーター |
説明 |
必須 |
|
destinationfilepath |
ファイルのダウンロード先のパス。 |
はい |
|
key |
GCP を操作する場合、資格情報を検証し、リクエストしているリソースにアクセスするための権限を持っているかどうかをチェックするために、GCP セキュリティ資格情報を指定します。 GCP は、セキュリティ資格情報を使用して、リクエストを認証および承認します。 詳しくは、GCP API キーの概要を参照してください。 |
はい |
|
decryptionkey |
顧客提供の decryptionkey で暗号化されている Cloud Storage に格納されているオブジェクトをダウンロードする場合に指定します。 |
いいえ |
|
userproject |
GCP のプロジェクト ID。 |
いいえ |
|
shouldreturnrawinputstream |
リクエストがデータを展開せずに未処理の入力ストリームを返す必要があるかどうか。 |
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
downloadStruct = {
"destinationfilepath" : DESTINATION_PATH,
"key" : "key12",
"decryptionkey":"TIbv/fjexq+VmtXzAlc63J4z5kFmWJ6NdAPQulQBT7g="
}
downloadResponse=rootObj.downloadToFile(downloadStruct);
</cfscript>
説明
バケットからオブジェクトをダウンロードします。
シンタックス
downloadObject(structParameters)
戻り値
ステータスとオブジェクトを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
blobInfo |
次の構造体。 { "blobId" : { "name" : "key-name" } } |
はい |
|
blobSourceOption |
次のメンバーを持つ構造体。 decryptionKey : "", generationMatch : "", generationNotMatch : "", metatGenerationMatch : "", metaGenerationNotMatch : "", shouldReturnRawInputStream : "", userProject : "" |
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
downloadStruct = {
"blobInfo" : {
"blobId" : {
"name" : "key12"
}
},
blobSourceOption : [{
userProject : PROJECT_ID
}]
}
downloadResponse=bucketObj.downloadObject(downloadStruct);
</cfscript>
説明
バケット内のデータを更新します。
シンタックス
updateBucket(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
bucketinfo |
以下の情報を含んだ構造体。
注意:
バケット内のオブジェクトの保持期間を管理する、Cloud Storage バケットのデータ保持ポリシーです。また、この機能では、データ保持ポリシーをロックして、ポリシーが変更されたり削除されたりしないようにすることもできます。 |
いいえ |
|
buckettargetOption |
次のメンバーを持つ構造体。
|
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
updatestruct= {
bucketinfo:{
"requesterPays" : "false",
"labels" : {
"name" : "bucket_test",
"owner" : "abc"
},
"acl" : [{
"entity" : {
"user" : "xyz@abc.com"
},
"role" : "OWNER"
}
]
},
"buckettargetOption" : {
"userProject": PROJECT_ID
}
}
bucketObj.updateBucket(updatestruct);
</cfscript>
説明
バケット内のオブジェクトデータを更新します。
シンタックス
updateObject(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
blobInfo |
次のメンバーを持つ構造体。
|
はい |
|
blobTargetOption |
次のメンバーを持つ構造体。
|
|
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
updatestruct={
blobinfo:{
"blobId" :{
"name" : "key123"
},
"contentLanguage" : "en",
"metadata" :{
"owner" : "hannah",
"case" : "1"
}
},
"blobTargetOption" : {
"userProject": PROJECT_ID
}
}
bucketObj.updateObject(updatestruct);
</cfscript>
説明
バケットにタグを追加します。
シンタックス
addTags(structParameter)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
key |
タグを識別するキーの名前。 |
はい |
|
tags |
name と owner の構造体。 |
はい |
例
<cfscript>
cred = {
projectId : "project-id",
credentialJsonFilePath : "path-to-creds.json"
};
conf = {
serviceName : "STORAGE"
};
storageService = getCloudService(cred, conf)
createBucketStruct = {
"name" : "b_d_009",
"storageClass" : "STANDARD"
}
bucketObj = storageService.createBucket(createBucketStruct)
src = "#ExpandPath('..')#/files/test.txt";
key = "key12"
uploadStruct = {
"srcFile" : src,
"key" : key
}
uploadResponse=bucketObj.uploadFile(uploadStruct);
writeDump(uploadResponse)
//break;
addTagStruct =
{
"key":"key12",
"tags":
{
"key" : "key12",
"tags" : {"name" : "test_bucket","owner" : "john"}
}
}
tagResponse=bucketObj.addTags(addTagStruct)
writedump(tagResponse);
</cfscript>
説明
バケットでリクエスター支払いを有効にします。
シンタックス
enableRequesterpay(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
bucketGetOption |
userProject を含んだ構造体。 |
はい |
|
buckettargetOption |
userProject を含んだ構造体。 |
はい |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
rpstruct = {
bucketGetOption : [{
userProject : PROJECT_ID
}],
buckettargetOption : [{
userProject : PROJECT_ID
}]
};
bucketObj.enableRequesterPay(rpstruct);
</cfscript>
説明
バケットに対するリクエスター支払いを無効にします。
シンタックス
disableRequesterpay(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
bucketGetOption |
userProject を含んだ構造体。 |
はい |
|
buckettargetOption |
userProject を含んだ構造体。 |
はい |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
rpstruct = {
bucketGetOption : [{
userProject : PROJECT_ID
}],
buckettargetOption : [{
userProject : PROJECT_ID
}]
};
bucketObj.disableRequesterPay(rpstruct);
</cfscript>
説明
バケットでリクエスター支払いが有効になっているかどうかを確認します。
シンタックス
getRequesterPayStatus(structParameters)
戻り値
リクエスター支払いのステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
bucketGetOption |
userProject を含んだ構造体。 |
はい |
|
buckettargetOption |
userProject を含んだ構造体。 |
はい |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
rpstruct = {
bucketGetOption : [{
userProject : PROJECT_ID
}],
buckettargetOption : [{
userProject : PROJECT_ID
}]
};
writedump(bucketObj.getRequesterPayStatus(rpstruct));
</cfscript>
説明
バケット間でオブジェクトをコピーします。
シンタックス
copy(requestParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
megaBytesCopiedPerChunk |
チャンクごとにコピーされるオブジェクトのサイズ。 |
いいえ |
|
source |
バケットの名前とキーの名前を含んだ構造体。 |
はい |
|
target |
次の構造体。 { "blobId" : { "name" : "key-name" } }
|
はい |
|
blobTargetOption |
プロジェクトの名前と、BLOB が存在するかどうかを含んだ構造体。 blobTargetOption: { userProject, DoesNotExist } |
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
copyRequest ={
megaBytesCopiedPerChunk : 2,
source : {
bucket : "source_bucket_name",
name : "source_key"
},
sourceOptions :{
userProject : PROJECT_ID
},
target : {
blobInfo: {
blobId : {
name : "key123"
}
},
blobTargetOption: [{
userProject : PROJECT_ID
}]
}
}
bucketObj.copy(copyRequest);
</cfscript>
説明
オブジェクトのメタデータ情報を取得します。
シンタックス
getObjectMetadata(objectName)
戻り値
オブジェクトのメタデータを含んだ構造体。
パラメーター
objectName:オブジェクトの名前。
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
uploadRequest={
"srcFile" : <SRC_FILE_PATH>,
"blobInfo" : {
"blobId" : {
"bucket" : "bucket_test",
"name" : "key12"
}
}
}
uploadResponse=bucketObj.uploadFile(uploadRequest);
writedump(bucketObj.getObjectMetadata("key12")):
</cfscript>
説明
オブジェクトに関する情報を取得します。
シンタックス
getObjectDetails(objectName)
戻り値
オブジェクトのメタデータを含んだ構造体。
パラメーター
objectName:オブジェクトの名前。
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
uploadRequest={
"srcFile" : <SRC_FILE_PATH>,
"blobInfo" : {
"blobId" : {
"bucket" : "bucket_test",
"name" : "key12"
}
}
}
uploadResponse=bucketObj.uploadFile(uploadRequest);
writedump(bucketObj.getObjectDetails("key12")):
</cfscript>
説明
バケットのメタデータを取得します。
シンタックス
getBucketMetadata()
戻り値
バケットのメタデータを含んだ構造体。
例
<cfscript> storageService = getCloudService(application.gcpCred,application.gcpConf) bucketObj=storageService.bucket("bucket_test",true); writedump(bucketObj.getBucketMetadata()): </cfscript>
説明
様々なオブジェクトを 1 つに結合します。
シンタックス
composeObject(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
addSource |
結合するオブジェクトのキーの配列。 |
はい |
|
setTarget |
次の構造体。 { "blobId" : { "name" : "key-name" } }
|
はい |
|
setTargetOptions |
GCP プロジェクトの名前。 |
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
uploadStruct1 = {
"srcFile" : src1,
"blobInfo" : {
"blobId" : {
"name" : "key1"
}
}
}
uploadStruct2 = {
"srcFile" : src2,
"blobInfo" : {
"blobId" : {
"name" : "key2"
}
}
}
bucketObj.uploadFile(uploadStruct1);
bucketObj.uploadFile(uploadStruct2);
composeRequest = {
addSource : ["key1","key2"],
setTarget : {
BlobId : {
Name : "key12"
}
}
}
bucketObj.composeObject(composeRequest);
</cfscript>
説明
オブジェクトがうっかり削除されたり置き換えられたりするおそれがある場合は、クラウドストレージ内のデータを保護します。
バケット内のオブジェクトのバージョン管理を有効にすると、オブジェクトの以前のバージョンを保持できるようになります。
シンタックス
enableVersioning()
戻り値
ステータスを含んだ構造体。
例
<cfscript>
cred = {
projectId : "project-id",
credentialJsonFilePath : "path-to-creds-file.json"
};
conf = {
serviceName : "STORAGE"
};
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test_22",true);
bucketObj.enableVersioning();
list= bucketObj.listallversions();
writedump(bucketObj.getVersioningStatus());
bucketObj.suspendversioning();
</cfscript>
説明
バケット内のオブジェクトのすべてのバージョンをリストします。
シンタックス
listAllVersions()
戻り値
バージョンのリストを含んだ構造体。
例
<cfscript>
cred = {
projectId : "project-id",
credentialJsonFilePath : "path-to-creds-file.json"
};
conf = {
serviceName : "STORAGE"
};
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test_22",true);
bucketObj.enableVersioning();
list= bucketObj.listallversions();
writedump(bucketObj.getVersioningStatus());
bucketObj.suspendversioning();
</cfscript>
説明
バケットでのバージョン管理を一時停止します。
シンタックス
suspendVersioning()
戻り値
ステータスを含んだ構造体。
例
<cfscript>
cred = {
projectId : "project-id",
credentialJsonFilePath : "path-to-creds-file.json"
};
conf = {
serviceName : "STORAGE"
};
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test_22",true);
bucketObj.enableVersioning();
list= bucketObj.listallversions();
writedump(bucketObj.getVersioningStatus());
bucketObj.suspendversioning();
</cfscript>
説明
バケットのバージョン管理のステータスを取得します(true または false)。
シンタックス
getVersioningStatus()
戻り値
バージョン管理のステータスを含んだ構造体。
例
<cfscript>
cred = {
projectId : "project-id",
credentialJsonFilePath : "path-to-creds-file.json"
};
conf = {
serviceName : "STORAGE"
};
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test_22",true);
bucketObj.enableVersioning();
list= bucketObj.listallversions();
writedump(bucketObj.getVersioningStatus());
bucketObj.suspendversioning();
</cfscript>
説明
バケットにライフサイクル設定を定義します。この設定には、バケット内の現在および将来のオブジェクトに適用される一連のルールが含まれています。オブジェクトがいずれかのルールの条件を満たす場合、Cloud Storage は、そのオブジェクトに対して指定のアクションを自動的に実行します。
setRules メソッドを使用すると、バケットにライフサイクルルールを追加できます。
シンタックス
setRules(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
rules |
バケットに設定するライフサイクル設定。詳しくは、オブジェクトライフサイクル管理を参照してください。 |
はい |
|
action |
オブジェクトのアクションを指定します。サポートされている値は次のとおりです。
|
はい |
|
condition |
ルールに定義されているアクションがオブジェクトで実行されるためにオブジェクトが満たす必要がある条件。詳しくは、ライフサイクルの条件を参照してください。 |
はい |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
rules = { rules :[{
"action" : {
"type" : "delete"
},
"condition" :{
"daysSinceNoncurrentTime": 7
}
},
{
"action" : {
"type": "SetStorageClass",
"storageClass": "NEARLINE"
},
"condition" : {
"age" : 11,
"matchesPrefix" : ["blob","delete"],
"matchesSuffix" : ["test","edu"]
}
}]}
bucketObj.setRules(rules);
</cfscript>
説明
ライフサイクルルールをオブジェクトから削除します。
シンタックス
deleteRules()
戻り値
ステータスを含んだ構造体。
例
<cfscript> storageService = getCloudService(application.gcpCred,application.gcpConf) bucketObj=storageService.bucket("bucket_test",true); bucketObj.deleteRules(); </cfscript>
説明
オブジェクトのライフサイクルルールを取得します。
シンタックス
getRules()
戻り値
ルールとステータスを含んだ構造体。
例
<cfscript> storageService = getCloudService(application.gcpCred,application.gcpConf) bucketObj=storageService.bucket("bucket_test",true); writedump(bucketObj.getRules()); </cfscript>
説明
バケットにポリシーを追加します。ID およびアクセス管理について詳しくは、IAM を参照してください。
シンタックス
setIamPolicy(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
addIdentity |
次のメンバーを持つ構造体。 { role : <>, identity : [{<identity_Type> : <identity_Value>} ] } |
いいえ |
|
removeIdentity |
次のメンバーを持つ構造体。 { role : <>, identity : [{<identity_Type> : <identity_Value>} ] }
|
いいえ |
|
bindings |
役割(一連の権限を持っている)とその位置が割り当てられているプリンシパル間の関係。 |
いいえ |
|
etag |
ポリシーの HTTP 1.1 エンティティタグ |
いいえ |
|
version |
IAM ポリシーのバージョン。 |
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
addMemberRequest ={
addIdentity : {
Identity: [{"user":"mukumar@adobe.com"}],role: "roles/storage.objectViewer"
}
}
writedump(bucketObj.setIamPolicy(addMemberRequest));
writeDump(bucketObj.getIamPolicy())
</cfscript>
説明
バケットに適用された IAM ポリシーを取得します。
シンタックス
getIamPolicies()
戻り値
ステータスを含んだ構造体。
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj=storageService.bucket("bucket_test",true);
addMemberRequest ={
addIdentity : {
Identity: [{"user":"mukumar@adobe.com"}],role: "roles/storage.objectViewer"
}
}
writedump(bucketObj.setIamPolicy(addMemberRequest));
writeDump(bucketObj.getIamPolicy())
</cfscript>
説明
オブジェクトを取得するための URL を生成します。
シンタックス
signUrl(structParameters)
戻り値
ステータスを含んだ構造体。
パラメーター
|
パラメーター |
説明 |
必須 |
|
key |
バケット内のオブジェクトを識別するためのキー。 |
いいえ |
|
duration |
署名済み URL の有効期間。 |
いいえ |
|
timeUnit |
期間の時間単位。 |
いいえ |
|
cffunction |
署名済み URL で使用する HTTP メソッド。デフォルト値は GET です。 |
いいえ |
|
version |
オブジェクトのバージョン。 |
いいえ |
|
signer |
URL に署名するサービスアカウント署名者。 |
いいえ |
|
withBucketBoundHostname |
バケットにバインドされているホスト名。詳しくは、こちらのドキュメントを参照してください。 |
いいえ |
|
withContentType |
署名に BLOB のコンテンツタイプを含めるかどうかを指定します。 |
いいえ |
|
withExtHeaders |
署名に BLOB のヘッダーを含めるかどうかを指定します。 |
いいえ |
|
hostName |
バケットに使用するホスト名。 |
いいえ |
|
withMd5 |
署名に BLOB の MD5 を含めるかどうかを指定します。 |
いいえ |
|
withPathStyle |
パススタイルの URL を生成します。 |
いいえ |
|
queryParams |
URL に追加のクエリパラメーターを含めるかどうかを指定します。 |
いいえ |
|
signatureVersion |
使用する署名のバージョン(v2 または v4)。 |
いいえ |
|
withVirtualHostedStyle |
仮想ホストスタイルのホスト名を使用します。 |
いいえ |
例
<cfscript>
storageService = getCloudService(application.gcpCred,application.gcpConf)
bucketObj = storageService.bucket("<bucketName>");
// オブジェクトをダウンロードするための V4 署名済み URL を生成。
signUrlOption = {
key : "<objectName>",
duration : 15,
timeUnit : "MINUTES",
signatureVersion : "V4"
}
writedump(bucketObj.signUrl(signUrlOption));
// オブジェクトのアップロードに使用される PUT 署名済み URL を生成。
signUrlOption = {
key : "abc.txt",
duration : 15,
timeUnit : "MINUTES",
httpMethod : "PUT",
withExtHeaders : {
"Content-Type": "application/octet-stream"
},
signatureVersion : "V4"
}
writedump(bucketObj.signUrl(signUrlOption))
</cfscript>