使用例:IBM Object Storageにアップロードされたファイル。これで、特定の遅延の後に期限切れになる署名付きURLを介して一時的なアクセスを提供したいと考えています。NodeJsを使用したIBM Bluemixオブジェクトストレージサービスの一時公開URL
SWIFTのみが正式にサポートされているため、JAVASCRIPT - > NodeJsで動作する回避策が必要です。
使用例:IBM Object Storageにアップロードされたファイル。これで、特定の遅延の後に期限切れになる署名付きURLを介して一時的なアクセスを提供したいと考えています。NodeJsを使用したIBM Bluemixオブジェクトストレージサービスの一時公開URL
SWIFTのみが正式にサポートされているため、JAVASCRIPT - > NodeJsで動作する回避策が必要です。
SWIFT CLIをインストールし、資格情報の一時キーを設定する必要があります。
この手順は非常に重要であり、SWIFT CLIを使用することによってのみ実行できます。現在、Bluemix Consoleでこれを行う方法があるためです。
STEP 0 - ************ MANDATORY ************* SWIFT CLIをINSTALL
STEP 1 - ************ MANDATORY ************* 秘密鍵を生成すると、長くなるほど良くなります。
$迅速ポスト-m "温度-URL-キー:2d2a3e9f12e87b1_SOMEKEY_2d2a3e9f12e87b1"
***あなたはbashで入力して、いつでもそれを取得することができます - > $迅速STAT
STEP 2 - ************オプション************* dotenvインストールパッケージ $ NPM --save dotenvをインストール
STEP 3 - **** ********オプション************ .envファイルを作成する $ touch .env
手順4 - ************オプション************ .envファイルを編集し、これらの値をとに入れます。ファイルを保存します。
(REF - >ステップ1の通り)
META_TEMP_URL_KEY = b463af8f_SOMEVALUEKEY_b463af8fb463af8f
(REF - > Bluemixコンソールによって提供される通りPROJECTID)
PROJECTID = 50e8a0e8SOMEVALUEKEYbb463af8f
require('dotenv').config();
var crypto = require('crypto');
var META_TEMP_URL_KEY = process.env.META_TEMP_URL_KEY; // See Step 1
var baseUrl = 'https://dal.objectstorage.open.softlayer.com'; // Since my bucket is in DALLAS I am having this URL
var HTTPMethod = 'GET'; // Always GET - As the file has been already uploaded.
var containerName = 'expenses'; // Container Name as per in the Bluemix console - Ex: expenses
var objectName = 'report.pdf'; // The object filename - Ex: report.pdf
var seconds = 60; // Delay of the temporary URL to be valid.
var tempURL = getTempURL(baseUrl, HTTPMethod, containerName, objectName, seconds);
console.log(tempURL); // It should return in this case something like this:
// https://dal.objectstorage.open.softlayer.com/v1/AUTH_X0X0X0X0XX0X0XX0X0X/expenses/report.pdf?temp_url_sig=Z0Z0Z0Z0Z0Z0Z0Z0Z0Z0Z0Z0&temp_url_expires=1476243544
function getTempURL(baseUrl, HTTPMethod, metaTempURLKey, projectID, containerName, objectName, seconds) {
var expires = Math.floor(Date.now()/1000) + seconds;
var url = containerName + '/' + objectName;
var method = HTTPMethod;
var key = key;
var objectPath = '/v1/AUTH_' + process.env.PROJECTID + '/' + url;
var hmacBody = method + '\n' + expires + '\n' + objectPath;
var sig = crypto.createHmac('sha1', key).update(hmacBody).digest('hex');
var tempURL = baseUrl + objectPath + '?temp_url_sig=' + sig + '&temp_url_expires=' + expires;
return tempURL;
}
このためのlution?私はこの問題に悩まされていた。どんな助けでも大歓迎です。 – Mdumanoj