
Box: ファイル移動
この工程は、既存ファイルを指定フォルダに移動します。ファイルの ID・URL は変化しません。
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 のリフレッシュトークンには、期限があります
- 期限を超えないよう、定期的に利用する必要があります (Box: トークンおよびURLの有効期限)
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}`;
}
}
