Box ファイルアップロード(パスワード、期限)

ご案内

 ダウンロード用のパスワードやダウンロード期限を設定したファイルのアップロードには、次のモデリング要素をご利用ください。

Box ファイルアップロード(パスワード、期限)

Box のフォルダを指定してファイルをアップロードし、公開用URLを取得して文字型データ項目に格納します。ダウンロード用パスワード、ダウンロード期限を設定することができるので、ファイル共有等に利用できます。

2017 © Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/box-fileupdate/

Configs
  • A: OAuth2通信許可設定名 (←[OAuth 2.0 設定]) *
  • B: boxのフォルダIDが格納されている文字列型or選択肢型データを選択してください(ルートフォルダは”0″) *
  • C: アップロードするファイル型データを選択してください。 *
  • D: ダウンロード期限が格納されている日付型データを選択してください *
  • E: ダウンロードパスワードが格納されている文字型データを選択してください *
  • F: ダウンロードURLが格納される文字型データを選択してください (更新) *
  • X: 通信ログが格納される文字列型データを選択してください (更新)
Script
//// == Config Retrieving / 工程コンフィグの参照 ==
var oauth2  = configs.get("conf_OAuth2") + "";
var dataIdB = configs.get("conf_DataIdB") + "";
var dataIdC = configs.get("conf_DataIdC") + "";
var dataIdD = configs.get("conf_DataIdD") + "";
var dataIdE = configs.get("conf_DataIdE") + "";
var dataIdF = configs.get("conf_DataIdF") + "";
var dataIdX = configs.get("conf_DataIdX") + "";

//// == Data Retrieving / ワークフローデータの参照 ==
var folderId = "";
if(engine.findDataByNumber(dataIdB) instanceof java.util.ArrayList ){
  folderId = engine.findDataByNumber(dataIdB).get(0).getValue() + "";
}else if( engine.findDataByNumber(dataIdB) instanceof java.lang.String ){
  folderId = engine.findDataByNumber(dataIdB) + "";
}
var files = engine.findDataByNumber(dataIdC);
var download_limit = engine.findDataByNumber(dataIdD) + "";
var download_password = engine.findDataByNumber(dataIdE) + "";

//// == File Upload ==
var accessLog = "";
var responseJson = "";
var token = httpClient.getOAuth2Token( oauth2 );

if (files !== null) {
  var file = files.get(0);
  var attributes = {
    parent : {id : folderId}
  };
  attributes["name"] = String(file.getName());

  var response = httpClient.begin()
    .bearer(token)
    .multipart('attributes', JSON.stringify(attributes))
    .multipart('file', file)
    .post('https://upload.box.com/api/2.0/files/content');
  accessLog += "---POST request--- " + response.getStatusCode() + "\n";
  accessLog += file.getName() + "\n";
  responseJson += response.getResponseAsString() + "\n";
}

// for Debug
accessLog += responseJson + "\n";

//// == ワークフローデータへの代入 / Data Updating ==
if( dataIdX !== "" ){
  engine.setDataByNumber(dataIdX,accessLog);
}

var update_info_obj = {};

update_info_obj.shared_link = {};
update_info_obj.shared_link.access = "open";
update_info_obj.shared_link.password = download_password;
update_info_obj.shared_link.unshared_at = download_limit;
update_info_obj.shared_link.permissions = {};
update_info_obj.shared_link.permissions.can_download = true;

var file_obj = JSON.parse(responseJson);
var file_id = file_obj.entries[0].id;

var response_update = httpClient.begin()
      .bearer(token)
      .body(JSON.stringify(update_info_obj), "application/json" )
      .put('https://api.box.com/2.0/files/' + file_id);

accessLog += "---PUT request--- "
    + response_update.getStatusCode() + "\n";
var updateResponseJson = response_update.getResponseAsString() + "\n";
var update_file_obj = JSON.parse(updateResponseJson);
engine.setDataByNumber(dataIdF, update_file_obj.shared_link.download_url);

// for Debug
accessLog += updateResponseJson + "\n";

if( dataIdX !== "" ){
  engine.setDataByNumber(dataIdX,accessLog);
}

Download

  • Box-fileUpdate.xml
    • スクリプトエンジンとして「Rhino(廃止予定)」が指定されているため、アプリにインストールしても設定エラーとなります
    • 利用するには、スクリプトエンジンの変更、およびそれに伴うスクリプト修正が必要です
    • 修正版は準備中です

Capture

Notes

  • アップロードされるファイルは、1ファイルのみとなります
  • C のファイル型データ項目にて「最大添付ファイル数:1」を推奨

上部へスクロール

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む