NAVER CLOUD PLATFORM Object Storageからファイルをダウンロードする

Home > NAVER CLOUD PLATFORM Object Storage > 例03

説明

NAVER CLOUD PLATFORM Object Storageからファイルをダウンロードする例です。Object Storage に保存されているファイルに「Public-Read」パーミッションがない場合、クレデンシャルプロセスが必要になる場合があるため、「Region/Bucket/ExecSec/SecretExecSec」情報が必要になります。

// NCPOSメソッドを設定する。
dx.setDownloadMode("NCPOS");
dx.setNCPOSDownloadConfig({
	type: "NON-SECRET",
	accessKeyId: "ABCD...1234",
	secretAccessKey: "ABCD...1234",
	region: "",
	bucket: "abc-bucket"
});

Object Storage のバケットに格納されたオブジェクト(ファイル)には、以下のアドレス指定でアクセスできます。

https://{region}.object.ncloudstorage.com/{bucket-name}/{key}
https://{bucket-name}.{region}.object.ncloudstorage.com/{key}

したがって、オブジェクトをダウンロードするには、オブジェクトのアドレスを仮想ファイルのURLに設定する必要があります。

dx.addVirtualFile({ name: "bridge_509147.jpg", size: 509147, url: "https://kr.object.ncloudstorage.com/abc-bucket/bridge_509147.jpg" });
dx.addVirtualFile({ name: "beach_239826.jpg", size: 239826, url: "https://kr.object.ncloudstorage.com/abc-bucket/beach_239826.jpg" });
dx.addVirtualFile({ name: "cosmos (empty) 195779.jpg", size: 195779, url: "https://kr.object.ncloudstorage.com/abc-bucket/cosmos%20%28empty%29%20195779.jpg" });

オブジェクトストレージのバケットも、ダウンロード用に設定する必要がある。異なるソース間の通信にはCORSの設定が必要です。DEXTUploadX5はテイクオーバー機能を使用するので、Accet-Rangesレスポンスヘッダを追加する必要があります。

# NAVER CLOUD PLATFORM Object Storage CORS configuration
{
	"CORSRules": [
	    {
	        "AllowedHeaders": ["*"],
	        "AllowedMethods": ["HEAD", "GET", "PUT", "POST"],
	        "AllowedOrigins": ["*"],
	        "ExposeHeaders": ["ETag", "Accept-Ranges"],
	        "MaxAgeSeconds": 3000	        
	    }
	]
}

単一ファイルのダウンロード

複数ファイルのダウンロード

テストするには、スクリプトでACCESS_KEY、SECRET_KEY、REGION、BUCKET_NAMEを設定する必要がある。