Box: ファイル移動

Box: ファイル移動

Box: Move File

この工程は、既存ファイルを指定フォルダに移動します。ファイルの ID・URL は変化しません。

Auto Step icon
Basic Configs
工程名
メモ
Configs for this Auto Step
conf_OAuth2
C1: OAuth2 設定 *
conf_FileId
C2: 移動させるファイルの ID *
conf_FolderId
C3: 移動先フォルダの ID *

Notes

  • フォルダ ID は、URL に含まれています https://{sub-domain}.app.box.com/folder/(Folder ID)
  • ファイル ID は、URL に含まれています https://app.box.com/file/(File ID)
  • ファイル名やフォルダ名が競合(コンフリクト)する場合はエラーとなります
  • Box のリフレッシュトークンには、期限があります

Capture

See also

Script (click to open)
  • 次のスクリプトが記述されている XML ファイルをダウンロードできます
    • box-file-move.xml (C) Questetra, Inc. (MIT License)
    • Professional のワークフロー基盤では、ファイル内容を改変しオリジナルのアドオン自動工程として活用できます

function main(){
  //// == Config Retrieving / 工程コンフィグの参照 ==
  const oauth2 = configs.getObject("conf_OAuth2");
  const fileId = decideFileId();

  if(fileId === "" || fileId === null){
    throw "No File ID";
  }

  const folderId = decideFolderId();

  if(folderId === "" || folderId === null){
    //空の場合はエラーとする when folder id isn't set, throw error
    throw "No Folder ID";
  }
  moveFile(oauth2, folderId, fileId);
}

/**
  * ファイルのIDをconfigから読み出して出力する。
  * @return {String}  ファイルの ID
  */
function decideFileId(){
  const fileIdDef = configs.getObject("conf_FileId");
  const fileId = engine.findData(fileIdDef);
  return fileId;
}

/**
  * フォルダのIDをconfigから読み出して出力する。
  * @return {String}  フォルダの ID
  */
function decideFolderId(){
  let folderId = "";
  const folderIdDef = configs.getObject("conf_FolderId");
  if(folderIdDef === null){
    folderId = configs.get( "conf_FolderId");
  }else{
    folderId = engine.findData(folderIdDef);
  }
  return folderId;
}

/**
  * Box 上のファイルを指定フォルダに移動する。
  */
function moveFile(oauth2, folderId, fileId) {
  const jsonReq = {};
  jsonReq["parent"] = {"id": folderId };
  const url = `https://api.box.com/2.0/files/${fileId}`;

  const response = httpClient.begin()
    .authSetting(oauth2)
    // fields には id を指定(レスポンスを基本レプリゼンテーションに縮小するため)
    .queryParam("fields", "id")
    .body(JSON.stringify(jsonReq), "application/json; charset=UTF-8")
    .put(url);

  const status = response.getStatusCode();
  const responseTxt = response.getResponseAsString();

  if (status >= 300) {
    engine.log(responseTxt);
    throw `Failed to move. status: ${status}`;
  }
}

上部へスクロール

Questetra Supportをもっと見る

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

続きを読む