{"id":67400,"date":"2024-02-20T11:15:11","date_gmt":"2024-02-20T02:15:11","guid":{"rendered":"https:\/\/support.questetra.com\/?p=67400"},"modified":"2024-02-20T11:21:28","modified_gmt":"2024-02-20T02:21:28","slug":"box-upload","status":"publish","type":"post","link":"https:\/\/support.questetra.com\/en\/bpmn-icons\/box-upload\/","title":{"rendered":"Box: Upload File"},"content":{"rendered":"\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"58\" data-attachment-id=\"113160\" data-permalink=\"https:\/\/support.questetra.com\/en\/developer-blog\/how-to-use-timer-start-event\/attachment\/advanced-banner-new-en\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?fit=1200%2C68&amp;ssl=1\" data-orig-size=\"1200,68\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"advanced-banner-new-en\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?fit=1024%2C58&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en-1024x58.png?resize=1024%2C58&#038;ssl=1\" alt=\"\" class=\"wp-image-113160\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?resize=1024%2C58&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?resize=600%2C34&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?resize=768%2C44&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-border-color has-product-main-border-color has-white-color has-product-main-background-color has-text-color has-background has-link-color\" style=\"border-width:2px;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--20)\"><strong>Box: Upload File<\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-right has-border-color has-product-main-border-color has-white-color has-product-main-background-color has-text-color has-background has-link-color has-small-font-size mt-0 pt-0 wp-block-paragraph\" style=\"border-width:2px;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:var(--wp--preset--spacing--20);padding-bottom:0;padding-left:var(--wp--preset--spacing--20)\"><a href=\"https:\/\/support.questetra.com\/en\/bpmn-icons\/box-upload\/\">Box: \u30d5\u30a1\u30a4\u30eb\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9<\/a><\/p>\n\n\n\n<p class=\"has-border-color has-product-main-border-color has-text-color has-white-background-color has-background has-link-color mt-0 pt-0 wp-block-paragraph\" style=\"border-width:2px;margin-top:0;margin-right:0;margin-bottom:var(--wp--preset--spacing--30);margin-left:0;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)\">This item uploads files to the specified folder on Box.<\/p>\n\n\n\n<figure class=\"wp-block-image alignright has-custom-border is-style-default\"><img decoding=\"async\" src=\"data:image;base64,\n        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAD\/UlEQVRYR82XbWibVRTHf\/fJ2jXJ\n        2qSd65x11aC0YgJWZUwEWZ0D\/SJaHYKKmgykbL70Bf2k4IYwZOKWOhFRMM9QZxHUjSEo+7AOlA1E\n        7WSRThzdqq1tWWxjm7Zrk1y5N+SlydM2XdvN50sebs5z7u+e8z\/n3iu4xo9Y1Pz+3x6F5BagAYQb\n        oX4BSTfIUaAbIboIeY8W63dhAH+vGyZaQLYihLsox1LBiCA4OjA9CmzOZ34Af9gP8kDRE+dPo0GM\n        AObtR+YimBvAfzaIEC1FrXghIymDmL42KzNrgMBZE8RzC\/ld1P8SE9MbyP+mEGA5V16Ykg5MX2vu\n        8GwAlXNBaFErW6yxFE25msgCaLXHeq9YcMWCaGE6PenqyAEI70bwRrF+lmQn2YPp3a18ZAECYVWv\n        rrTj0I4bqHLaeOTgn0uay\/JjFQXTV5kFUB1OyK9zjYeC9ThKBeW7epYfQHfPlBZSEbBQ\/nBHCmDN\n        zpUCkLoiUgCBcBegenzmUQDO1QaHT0dpqC3T4yd7YrzyxZB+33V\/Jds3VbBmtUH\/SJzmQwN07ryR\n        7r4p2jtTNh88uwHPdaU8uP+iVRRPEvI2pgEuADflA6wrtxV8+GPvJBcuzfDY3RXYjBzgfxNU2A0M\n        AW2fD1Jht\/FmUzWx6STuFyyiqDYw03tnGkDmz6QioADUZO98F8HtMHh521o9lpQwNSMxvx\/l9PkJ\n        XtpWxSaPnZFYArfDRmQ8oeFcDhvvHv+Hts5Bax2FvGJeAFUFW97q5Yc\/JrWDVx9ay74n1uv3Iz+P\n        0fRetkIiB+uxlxj80jfFvbfatc2Jnhhb91mGPwWUA1CQgoH9dawrX0VN+zmGxxLa\/qnNLj5rrtHv\n        ShtPf9ifWdnfB+p02X7z6zhNd5Xr8U9PRXnmo6zN7DDIM4R8DXOK8NRrHu65xY7K+QNvX2SDaxXH\n        Wmqpu75U+1FhVsL78qcxDjfX8ORml05BeZmN6YTUDUalQenh\/RMjC4jQogwb6x189eJGKp02YpeT\n        2AxBWYmgLzLDwGhcw8UTaJG57AaT0xIlJGXTcTyi09HcWMml8QTVLecKAWRuGVo0IvXF1tuc7N1e\n        rUspnpSE+y+z4+N+\/hqJ88nzNdxX58BRajAYjbPn6DB7H1\/P70PTPNzRpyf8tr2WjVUleF8\/bwGQ\n        24jU33mt2Fq2yzYaJeTVx7v\/0WaktmMxoaohsyEt23pnO4oiHTcXbsfK6JoeSNKUK3oky54D0tNd\n        vUMp8hAhnz8\/rVfpWF648vkjkEmHPqiYSxBmFCn8V3YxyUDoq1krAnWcLrZCokjU1Sy4tKtZfsJS\n        l9NGhGgA6QZxR8pEngExipTdYHTNt+LiNbBCTSDf7X8FbX8wYecpbwAAAABJRU5ErkJggg==\n    \" alt=\"Auto Step icon\" class=\"has-border-color has-ast-global-color-6-border-color\" style=\"border-width:0.5em\"\/><\/figure>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details open><summary class=\"wp-block-coblocks-accordion-item__title\">Basic Configs<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<dl style=\"0 0 -0.7em 0\">\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #C3C3C3;\"><\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">Step Name<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #C3C3C3;\"><\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">Note<\/dd>\n<\/dl>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details open><summary class=\"wp-block-coblocks-accordion-item__title\">Configs for this Auto Step<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<dl style=\"0 0 -0.7em 0\">\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">conf_OAuth2<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C1: OAuth2 Setting<span style=\"color:#990000;\"> *<\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">uploadedFile<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C2: File type data item whose attached files will be uploaded<span style=\"color:#990000;\"> *<\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">uploadedFolderId<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C3: Folder ID that files will be uploaded (Root folder if blank)<span style=\"color:#000099;\"><sup style=\"font-style:italic;\">#{EL}<\/sup><\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">fileId<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C4: String type data item that will save uploaded file ids<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">fileUrl<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C5: String type data item that will save uploaded file urls<\/dd>\n\n<\/dl>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><i class=\"fal fa-lightbulb-exclamation\"><\/i> Notes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Folder ID is contained in the URL:\u3000https:\/\/{sub-domain}.app.box.com\/folder\/(Folder ID)<\/li>\n\n\n\n<li>If there are filename conflicts, it will result in an error<ul><li>When the conflicted file is over 50MB, no files will be uploaded<\/li><li>When it is 50MB or under, files set before it will be uploaded<\/li><\/ul><\/li>\n\n\n\n<li>Box refresh tokens have an expiration date<ul><li>You must use them regularly to ensure that the expiration date is not exceeded (Box: <a rel=\"noopener\" href=\"https:\/\/developer.box.com\/guides\/api-calls\/permissions-and-errors\/expiration\/\" target=\"_blank\">Token &amp; URL Expiration<\/a>)<\/li><\/ul><\/li>\n\n\n\n<li>A File over 50MB will be divided into parts with the size of each part specified by Box<ul><li>In this case, the number of sending requests is expressed by (file size \u00f7 specified size) + 2 (you should round up the result of the calculation in parenthesis)<\/li><\/ul><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><i class=\"fal fa-images\"><\/i> Capture<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2022\/11\/box-file-upload_capture_en.png?ssl=1\" alt=\"\" style=\"border:10px solid #aaaaaa; padding:5px; margin:5px;\"><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><i class=\"fal fa-balance-scale\"><\/i> See also<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/support.questetra.com\/en\/developer-blog\/box-workflow-tutorial\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Utilising Box From Your Workflow(opens in a new tab)\">Utilising Box From Your Workflow<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/support.questetra.com\/en\/bpmn-icons\/intermediate-error-catch-event-boundary-type\/\" target=\"_blank\">Intermediate Error Catch Event (Boundary Type)<\/a><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Script (click to open)<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<ul class=\"wp-block-list\">\n<li>An XML file that contains the code below is available to download\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/raw.githubusercontent.com\/Questetra\/Addon-XML\/release-2024-01-19\/box-file-upload.xml\" target=\"_blank\" rel=\"noreferrer noopener\">box-file-upload.xml<\/a> (C) Questetra, Inc. (MIT License)<\/li>\n\n\n\n<li>If you are using Professional, you can modify the contents of this file and use it as your own add-on auto step<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\n\/\/ OAuth2 config\n\/\/ Authorization Endpoint URL: https:\/\/app.box.com\/api\/oauth2\/authorize\n\/\/ Token Endpoint URL: https:\/\/app.box.com\/api\/oauth2\/token\n\/\/ Scope:\n\/\/ Consumer Key: (Get by box Application on box Developers)\n\/\/ Consumer Secret: (Get by box Application on box Developers)\n\nconst SIZE_LIMIT = 52428800; \/\/File size border of Box\n\/\/50MB\n\nfunction main() {\n    \/\/\/\/ == \u5de5\u7a0b\u30b3\u30f3\u30d5\u30a3\u30b0\u306e\u53c2\u7167 \/ Config Retrieving ==\n    const oauth2 = configs.getObject(&quot;conf_OAuth2&quot;);\n    const idDataDef = configs.getObject(&quot;fileId&quot;);\n    const urlDataDef = configs.getObject(&quot;fileUrl&quot;);\n    \/\/\/\/ == \u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30c7\u30fc\u30bf\u306e\u53c2\u7167 \/ Data Retrieving ==\n    const folderId = decideFolderId();\n    const files = engine.findData(configs.getObject(&quot;uploadedFile&quot;));\n    if (files === null) {\n        setData(idDataDef, [&quot;&quot;]);\n        setData(urlDataDef, [&quot;&quot;]);\n        return;\n    }\n\n    \/\/\/\/ == \u6f14\u7b97 \/ Calculating ==\n\n    checkFile(files, idDataDef, urlDataDef);\n    let uploadedFileData = [[], []]; \/\/0:ID,1:URL\n    const session = prepareSessionsAndCheckRequestNumber(oauth2, files, folderId);\n    uploadAllFiles(oauth2, files, folderId, uploadedFileData, session);\n\n    \/\/\/\/ == \u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30c7\u30fc\u30bf\u3078\u306e\u4ee3\u5165 \/ Data Updating ==\n    setData(idDataDef, uploadedFileData[0]);\n    setData(urlDataDef, uploadedFileData[1]);\n}\n\n\/**\n * \u30d5\u30a9\u30eb\u30c0\u306eID\u3092config\u304b\u3089\u8aad\u307f\u51fa\u3057\u3066\u51fa\u529b\u3059\u308b\u3002\u7a7a\u306e\u5834\u5408\u306f&quot;0&quot;\u3068\u3059\u308b\u3002\n * @return {String}  \u30d5\u30a9\u30eb\u30c0\u306eID\n *\/\nfunction decideFolderId() {\n    let folderId = configs.get(&quot;uploadedFolderId&quot;);\n    if (folderId === &quot;&quot; || folderId === null) {\n        \/\/when folder ID isn&apos;t set, set &quot;0&quot;\n        folderId = &quot;0&quot;;\n    }\n    return folderId;\n}\n\n\/**\n * \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u6570\u30fb\u540d\u524d\u304c\u9069\u5207\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\u3059\u308b\n * \u30d5\u30a1\u30a4\u30eb\u6570\u304c\u901a\u4fe1\u5236\u9650\u3092\u8d85\u3048\u305f\u3089\u30a8\u30e9\u30fc\u3092\u51fa\u3057\u3001\u305d\u306e\u5f8c\u5404\u95a2\u6570\u3092\u547c\u3073\u51fa\u3059\n * @param {Array&lt;File&gt;} files  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u5217\n * @param {String} folderId  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u5148\u30d5\u30a9\u30eb\u30c0\u306eID\n * @param {ProcessDataDefinitionView} idDataDef  ID \u3092\u4fdd\u5b58\u3059\u308b\u30c7\u30fc\u30bf\u9805\u76ee\u306e ProcessDataDefinitionView\n * @param {ProcessDataDefinitionView} urlDataDef  URL \u3092\u4fdd\u5b58\u3059\u308b\u30c7\u30fc\u30bf\u9805\u76ee\u306e ProcessDataDefinitionView\n *\/\nfunction checkFile(files, idDataDef, urlDataDef) {\n    const fileNum = files.size(); \/\/number of files\n    if (fileNum &gt; httpClient.getRequestingLimit()) {\n        throw &quot;Number of requests is over the limit&quot;;\n    }\n    checkfileNum(idDataDef, fileNum);\n    checkfileNum(urlDataDef, fileNum);\n    checkFileName(files);\n    checkFileNameOverlap(files);\n}\n\n\/**\n * \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u304c\u8907\u6570\u3067 \u30d1\u30b9\u30fbURL \u51fa\u529b\u5148\u306e\u30c7\u30fc\u30bf\u9805\u76ee\u304c\u5358\u4e00\u884c\u306a\u3089\u30a8\u30e9\u30fc\u306b\u3059\u308b\n * @param {ProcessDataDefinitionView} dataDef  \u30c7\u30fc\u30bf\u9805\u76ee\u306e ProcessDataDefinitionView\n * @param {Number} fileNum  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u500b\u6570\n *\/\nfunction checkfileNum(dataDef, fileNum) {\n    if (dataDef !== null) {\n        \/\/Multiple Judge\n        if (dataDef.matchDataType(&quot;STRING_TEXTFIELD&quot;) &amp;&amp; fileNum &gt; 1) {\n            throw &quot;Multiple files are set though the Data Item to save the output is Single-line String.&quot;\n        }\n    }\n}\n\n\/**\n * \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u304cBox\u306b\u304a\u3044\u3066\u7121\u52b9\u306a\u30d5\u30a1\u30a4\u30eb\u540d\u3068\u306a\u308b\u3082\u306e\u306a\u3089\u30a8\u30e9\u30fc\u306b\u3059\u308b\n * Box\u306b\u304a\u3044\u3066\u7121\u52b9\u306a\u30d5\u30a1\u30a4\u30eb\u540d\u3068\u306a\u308b\u6761\u4ef6\n * \u30fb\u30d5\u30a1\u30a4\u30eb\u540d\u306b\\ \/ \u306e\u3044\u305a\u308c\u304b\u304c\u542b\u307e\u308c\u3066\u3044\u308b\n * \u30fb\u30d5\u30a1\u30a4\u30eb\u540d\u306e\u5148\u982d\u304b\u672b\u5c3e\u306b\u30b9\u30da\u30fc\u30b9\u304c\u3042\u308b\n * \u30fb\u30d5\u30a1\u30a4\u30eb\u540d\u304c. \u307e\u305f\u306f .. \u3067\u3042\u308b\n * @param {Array&lt;File&gt;} files  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u5217\n *\/\nfunction checkFileName(files) {\n    for (let i = 0; i &lt; files.size(); i++) {\n        let fileName = files[i].getName();\n        if (fileName.indexOf(&quot;\/&quot;) !== -1 || fileName.indexOf(&quot;\\\\&quot;) !== -1 || fileName === &quot;.&quot; || fileName === &quot;..&quot; || fileName.endsWith(&quot; &quot;) === true || fileName.startsWith(&quot; &quot;) === true) {\n            throw &quot;Invalid File Name&quot;;\n        }\n    }\n}\n\n\/**\n * \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u306b\u540c\u3058\u30d5\u30a1\u30a4\u30eb\u540d\u306e\u3082\u306e\u304c2\u3064\u4ee5\u4e0a\u3042\u308c\u3070\u30a8\u30e9\u30fc\n * @param {Array&lt;File&gt;}  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u5217\n *\/\nfunction checkFileNameOverlap(files) {\n    let fileNames = [];\n    const fileNum = files.size();\n    for (let i = 0; i &lt; fileNum; i++) {\n        if (fileNames.includes(files[i].getName())) {\n            throw &quot;Two or more files to upload have the same name.&quot;;\n        }\n        fileNames[i] = files[i].getName();\n    }\n}\n\n\/**\n * 50MB\u3092\u8d85\u3048\u308b\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3057\u3001\u901a\u4fe1\u6570\u3092\u78ba\u8a8d\u3059\u308b\n * \u901a\u4fe1\u6570\u304c\u5236\u9650\u3092\u8d85\u3048\u305f\u3089\u30a8\u30e9\u30fc\u3092\u51fa\u3059\n * \u901a\u4fe1\u6570=50MB\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u6570 + &lt;50MB\u3092\u8d85\u3048\u308b\u30d5\u30a1\u30a4\u30eb\u305d\u308c\u305e\u308c\u306b\u3064\u3044\u3066&gt;(ceil(\u30d5\u30a1\u30a4\u30eb\u30b5\u30a4\u30ba\/\u30d1\u30b1\u30c3\u30c8\u30b5\u30a4\u30ba) + 2)\n * \u30d1\u30b1\u30c3\u30c8\u30b5\u30a4\u30ba\u306f\u30bb\u30c3\u30b7\u30e7\u30f3\u4f5c\u6210\u6642\u306b\u6307\u5b9a\u3055\u308c\u308b\n * @param {AuthSettingWrapper} oauth2  OAuth2 \u8a8d\u8a3c\u8a2d\u5b9a\n * @param {Array&lt;File&gt;} files  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u5217\n * @param {String} folderId  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u5148\u30d5\u30a9\u30eb\u30c0\u306eID\n * @return {Array&lt;Object&gt;} \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u914d\u5217(50MB\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u306f\u7a7a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8)\n *\/\nfunction prepareSessionsAndCheckRequestNumber(oauth2, files, folderId) {\n    let requestNum = 0;\n    let session = [];\n    for (let i = 0; i &lt; files.size(); i++) {\n        requestNum++;\n        if (files.get(i).getLength() &gt; SIZE_LIMIT) {\n            \/\/over 50MB\n            session[i] = createSession(oauth2, files.get(i), folderId);\n            requestNum += (Math.ceil(files.get(i).getLength() \/ session[i].part_size + 1));\n        } else {\n            session[i] = {};\n        }\n    }\n    if (requestNum &gt; httpClient.getRequestingLimit()) {\n        throw &quot;Number of requests is over the limit&quot;;\n    }\n    return session;\n}\n\n\/**\n * \u5404\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u51e6\u7406\u3092\u884c\u3046\n * \u30d5\u30a1\u30a4\u30eb\u306e\u30b5\u30a4\u30ba\u3054\u3068\u306b\u5de5\u7a0b\u306f\u7570\u306a\u308b\n * @param {AuthSettingWrapper} oauth2  OAuth2 \u8a8d\u8a3c\u8a2d\u5b9a\n * @param {Array&lt;File&gt;} files  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3088\u3046\u3068\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u5217\n * @param {String} folderId  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u5148\u306e\u30d5\u30a9\u30eb\u30c0\u306e\u30d1\u30b9\n * @param {Array&lt;Array&lt;String&gt;&gt;} uploadedFileData  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u4e8c\u6b21\u5143\u914d\u5217\n * @param {Array&lt;Object&gt;} session \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u914d\u5217(50MB\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u306f\u7a7a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8)\n *\/\nfunction uploadAllFiles(oauth2, files, folderId, uploadedFileData, session) {\n    for (let i = 0; i &lt; files.size(); i++) {\n        engine.log(files.get(i).getName());\n        if (files.get(i).getLength() &gt; SIZE_LIMIT) {\n            \/\/over 50MB\n            processLargeFile(oauth2, files.get(i), folderId, uploadedFileData, session[i]);\n        } else {\n            \/\/under 50MB\n            upload(oauth2, files.get(i), folderId, uploadedFileData);\n        }\n    }\n}\n\n\/**\n * 50MB\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3002\u4e00\u56de\u306b\u3064\u304d\u4e00\u3064\u306e\u307f\u3002\n * @param {AuthSettingWrapper} oauth2  OAuth2 \u8a8d\u8a3c\u8a2d\u5b9a\n * @param {File} file  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\n * @param {String} folderId  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u5148\u30d5\u30a9\u30eb\u30c0\u306eID\n * @param {Array&lt;Array&lt;String&gt;&gt;} uploadedFileData  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u4e8c\u6b21\u5143\u914d\u5217\n *\/\nfunction upload(oauth2, file, folderId, uploadedFileData) {\n    const url = &quot;https:\/\/upload.box.com\/api\/2.0\/files\/content&quot;;\n    let attributes = {\n        parent: {id: folderId}\n    };\n    attributes[&quot;name&quot;] = String(file.getName());\n\n    let response = httpClient.begin()\n        .authSetting(oauth2)\n        .multipart(&apos;attributes&apos;, JSON.stringify(attributes))\n        .multipart(&apos;file&apos;, file)\n        .queryParam(&quot;fields&quot;, &quot;id&quot;)\n        .post(url);\n    \/\/when error thrown\n    const responseStr = response.getResponseAsString();\n    const status = response.getStatusCode();\n    if (status &gt;= 300) {\n        engine.log(` upload failure\\n${responseStr}`);\n        throw `failed to upload\\nstatus: ${status}\\nfile: ${file.getName()}`;\n    }\n    engine.log(&quot; upload successful&quot;);\n    addOutputToArray(responseStr, uploadedFileData);\n}\n\n\/**\n * 50MB\u3092\u8d85\u3048\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u51e6\u7406\u3092\u884c\u3046\n * @param {AuthSettingWrapper} oauth2  OAuth2 \u8a8d\u8a3c\u8a2d\u5b9a\n * @param {File} file  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\n * @param {String} folderId  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u5148\u306e\u30d5\u30a9\u30eb\u30c0\u306e\u30d1\u30b9\n * @param {Array&lt;Array&lt;String&gt;&gt;} uploadedFileData  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u4e8c\u6b21\u5143\u914d\u5217\n * @param {Object} session  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30bb\u30c3\u30b7\u30e7\u30f3\n *\/\nfunction processLargeFile(oauth2, file, folderId, uploadedFileData, session) {\n    const sessionId = session.id;\n    const fileSize = file.getLength();\n    let part;\n    let partObj = {&quot;parts&quot;: []};\n    let range = 0;\n    fileRepository.readFile(file, session.part_size, function (packet) {\n        \/\/upload each fragment of file\n        part = uploadLargeFile(oauth2, sessionId, range, packet, fileSize, uploadedFileData, file.getName());\n        partObj.parts.push(part);\n        range += part.size;\n    });\n    commitSession(oauth2, sessionId, partObj, file, uploadedFileData);\n}\n\n\/**\n * \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u7528\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3059\u308b\n * @param {AuthSettingWrapper} oauth2  OAuth2 \u8a8d\u8a3c\u8a2d\u5b9a\n * @param {File} file  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\n * @param {String} folderId  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u5148\u306e\u30d5\u30a9\u30eb\u30c0\u306eID\n * @return {JSON Object}  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30bb\u30c3\u30b7\u30e7\u30f3\n *\/\nfunction createSession(oauth2, file, folderId) {\n    const url = &quot;https:\/\/upload.box.com\/api\/2.0\/files\/upload_sessions&quot;;\n    const body = {\n        &quot;file_name&quot;: file.getName(),\n        &quot;file_size&quot;: file.getLength(),\n        &quot;folder_id&quot;: folderId\n    };\n    let response = httpClient.begin()\n        .authSetting(oauth2)\n        .body(JSON.stringify(body), &quot;application\/json; charset=UTF-8&quot;)\n        .post(url);\n\n    const status = response.getStatusCode();\n    const jsonStr = response.getResponseAsString();\n    if (status &gt;= 300) {\n        engine.log(file.getName())\n        engine.log(` upload failure\\n${jsonStr}`);\n        throw `failed to create upload session \\nstatus: ${status}\\nfile: ${file.getName()}`;\n    }\n    return JSON.parse(jsonStr);\n}\n\n\/**\n * 50MB\u3092\u8d85\u3048\u308b\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u3001\u5404\u90e8\u5206\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\n * @param {AuthSettingWrapper} oauth2  OAuth2 \u8a8d\u8a3c\u8a2d\u5b9a\n * @param {String} sessionId  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30bb\u30c3\u30b7\u30e7\u30f3\u306e ID\n * @param {Number} range  range\n * @param {ByteArrayWrapper} packet  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d0\u30a4\u30ca\u30ea\n * @param {Number} fileSize  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u30b5\u30a4\u30ba\n * @param {Array&lt;Array&lt;String&gt;&gt;} uploadedFileData  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u4e8c\u6b21\u5143\u914d\u5217\n * @return {Object}  Uploaded Part\n *\/\nfunction uploadLargeFile(oauth2, sessionId, range, packet, fileSize, uploadedFileData, fileName) {\n    const packetSize = packet.getLength();\n    const url = `https:\/\/upload.box.com\/api\/2.0\/files\/upload_sessions\/${sessionId}`;\n    const rangetxt = `bytes ${range}-${range + packetSize - 1}\/${fileSize}`;\n    const hash = `sha=${base64.encodeToString(digest.sha1(packet))}`;\n    let sending = httpClient.begin()\n        .authSetting(oauth2)\n        .header(&quot;Content-Range&quot;, rangetxt)\n        .header(&quot;Digest&quot;, hash)\n        .body(packet, &quot;application\/octet-stream&quot;)\n        .put(url);\n\n    const status = sending.getStatusCode();\n    const responseStr = sending.getResponseAsString();\n    const json = JSON.parse(responseStr);\n    if (status &gt;= 300) {\n        engine.log(` upload failure\\n${responseStr}`);\n        throw `failed to upload\\nstatus: ${status}\\nfile: ${fileName}`;\n    } else {\n        return json.part;\n    }\n}\n\n\/**\n * 50MB\u3092\u8d85\u3048\u308b\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u3001\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u30b3\u30df\u30c3\u30c8\u3059\u308b\n * @param {AuthSettingWrapper} oauth2  OAuth2 \u8a8d\u8a3c\u8a2d\u5b9a\n * @param {String} sessionId  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30bb\u30c3\u30b7\u30e7\u30f3\u306e ID\n * @param {Object} partObj  \u3053\u308c\u307e\u3067\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c8\u30d1\u30fc\u30c8\u3092\u307e\u3068\u3081\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n * @param {File} file  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\n * @param {Array&lt;Array&lt;String&gt;&gt;} uploadedFileData  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u4e8c\u6b21\u5143\u914d\u5217\n *\/\nfunction commitSession(oauth2, sessionId, partObj, file, uploadedFileData) {\n    const url = `https:\/\/upload.box.com\/api\/2.0\/files\/upload_sessions\/${sessionId}\/commit`;\n    const hash = `sha=${base64.encodeToString(digest.sha1(file))}`;\n    let commit = httpClient.begin()\n        .authSetting(oauth2)\n        .header(&quot;Digest&quot;, hash)\n        .queryParam(&quot;fields&quot;, &quot;id&quot;)\n        .body(JSON.stringify(partObj), &quot;application\/json&quot;)\n        .post(url);\n\n    const status = commit.getStatusCode();\n    const responseStr = commit.getResponseAsString();\n    if (status &gt;= 300) {\n        engine.log(` upload failure\\n${responseStr}`);\n        throw `failed to commit upload session \\nstatus: ${status}\\nfile: ${file.getName()}`;\n    }\n    engine.log(&quot; upload successful&quot;);\n    addOutputToArray(responseStr, uploadedFileData);\n}\n\n\/**\n * \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u305f\u30c7\u30fc\u30bf\u306eID\u3068URL\u3092\u914d\u5217\u306b\u30bb\u30c3\u30c8\u3059\u308b\u3002\n * @param {String} responseStr  \u9001\u4fe1\u6642\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u30c6\u30ad\u30b9\u30c8\u51fa\u529b\u3057\u305f\u3082\u306e\n * @param {Array&lt;String&gt;} uploadedFileData  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u304c\u683c\u7d0d\u3055\u308c\u308b\u914d\u5217\n *\/\nfunction addOutputToArray(responseStr, uploadedFileData) {\n    const json = JSON.parse(responseStr);\n    uploadedFileData[0].push(json.entries[0].id);\n    uploadedFileData[1].push(`https:\/\/app.box.com\/file\/${json.entries[0].id}`);\n}\n\n\/**\n * \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u305f\u30c7\u30fc\u30bf\u306e\u30d1\u30b9\u3068URL\u3092\u30c7\u30fc\u30bf\u9805\u76ee\u306b\u51fa\u529b\u3059\u308b\u3002\n * @param {ProcessDataDefinitionView} dataDef  \u30c7\u30fc\u30bf\u9805\u76ee\u306e ProcessDataDefinitionView\n * @param {Array&lt;String&gt;} uploadedFileData  \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u60c5\u5831\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u914d\u5217\n *\/\nfunction setData(dataDef, uploadedFileData) {\n    if (dataDef !== null) {\n        engine.setData(dataDef, uploadedFileData.join(&apos;\\n&apos;));\n    }\n}\n  \n    <\/code><\/pre><\/div>\n<\/div><\/details><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>This item uploads files to the specified folder on Box.<\/p>\n","protected":false},"author":17,"featured_media":110854,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uag_custom_page_level_css":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[551],"tags":[406],"class_list":["post-67400","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bpmn-icons","tag-box-api"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1","uagb_featured_image_src":{"full":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1",1200,675,false],"thumbnail":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=440%2C440&ssl=1",440,440,true],"medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=560%2C315&ssl=1",560,315,true],"medium_large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=768%2C432&ssl=1",768,432,true],"large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1024%2C576&ssl=1",1024,576,true],"1536x1536":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1",1200,675,true],"2048x2048":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-landscape-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-portrait-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=900%2C675&ssl=1",900,675,true],"newspack-article-block-square-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-landscape-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=800%2C600&ssl=1",800,600,true],"newspack-article-block-portrait-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=600%2C675&ssl=1",600,675,true],"newspack-article-block-square-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=800%2C675&ssl=1",800,675,true],"newspack-article-block-landscape-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=600%2C450&ssl=1",600,450,true],"newspack-article-block-portrait-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=450%2C600&ssl=1",450,600,true],"newspack-article-block-square-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=600%2C600&ssl=1",600,600,true],"newspack-article-block-landscape-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=400%2C300&ssl=1",400,300,true],"newspack-article-block-portrait-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=300%2C400&ssl=1",300,400,true],"newspack-article-block-square-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=400%2C400&ssl=1",400,400,true],"newspack-article-block-landscape-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=200%2C150&ssl=1",200,150,true],"newspack-article-block-portrait-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=150%2C200&ssl=1",150,200,true],"newspack-article-block-square-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?resize=200%2C200&ssl=1",200,200,true],"newspack-article-block-uncropped":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1",1200,675,true]},"uagb_author_info":{"display_name":"Shiho Tatsumi","author_link":"https:\/\/support.questetra.com\/en\/author\/tatsumi48c607ec82\/"},"uagb_comment_info":0,"uagb_excerpt":"This item uploads files to the specified folder on Box.","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9DiIh-hx6","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":95321,"url":"https:\/\/support.questetra.com\/en\/developer-blog\/box-workflow-tutorial\/","url_meta":{"origin":67400,"position":0},"title":"Utilising Box From Your Workflow","author":"Peter Glover","date":"2020-10-01","format":false,"excerpt":"Describes the automatic Steps that links Questetra to Box. You can Upload files, Create folders, and so on.","rel":"","context":"In &quot;Questetra Developers Blog&quot;","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/en\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/eyecatch-box.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/eyecatch-box.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/eyecatch-box.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/eyecatch-box.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/09\/eyecatch-box.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":78475,"url":"https:\/\/support.questetra.com\/en\/bpmn-icons\/box-folder-search\/","url_meta":{"origin":67400,"position":1},"title":"Box: Search Folder","author":"Shiho Tatsumi","date":"2024-06-18","format":false,"excerpt":"This item searches for a folder with a specific name directly under the specified folder on Box.","rel":"","context":"In &quot;BPMN Icons&quot;","block_context":{"text":"BPMN Icons","link":"https:\/\/support.questetra.com\/en\/category\/bpmn-icons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":78564,"url":"https:\/\/support.questetra.com\/en\/bpmn-icons\/box-folder-link-create\/","url_meta":{"origin":67400,"position":2},"title":"Box: Create Shared Link to Folder","author":"Shiho Tatsumi","date":"2024-01-30","format":false,"excerpt":"This item creates a URL to access the specified folder on Box. If no expiration date is specified, the URL will be created indefinitely. If no password is specified, the URL will be created without requiring a password.","rel":"","context":"In &quot;BPMN Icons&quot;","block_context":{"text":"BPMN Icons","link":"https:\/\/support.questetra.com\/en\/category\/bpmn-icons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":88561,"url":"https:\/\/support.questetra.com\/en\/bpmn-icons\/box-file-copy\/","url_meta":{"origin":67400,"position":3},"title":"Box: Copy File","author":"Shiho Tatsumi","date":"2024-02-20","format":false,"excerpt":"This item copies the File and saves it in the specified Folder.","rel":"","context":"In &quot;BPMN Icons&quot;","block_context":{"text":"BPMN Icons","link":"https:\/\/support.questetra.com\/en\/category\/bpmn-icons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":67394,"url":"https:\/\/support.questetra.com\/en\/addons\/box-fileupdate\/","url_meta":{"origin":67400,"position":4},"title":"Box File Upload (Password \/ Expiration)","author":"Hirotaka NISHI","date":"2017-10-10","format":false,"excerpt":"Uploads a file specifying the folder of Box, obtains the URL for publication and stores it in String type Data Item. Since you can set download password and download expiration date, it can be used for file sharing etc.","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/10\/box-upload-header.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/10\/box-upload-header.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/10\/box-upload-header.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/10\/box-upload-header.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/10\/box-upload-header.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":77425,"url":"https:\/\/support.questetra.com\/en\/bpmn-icons\/box-folder-create\/","url_meta":{"origin":67400,"position":5},"title":"Box: Create Folder","author":"Shiho Tatsumi","date":"2024-02-20","format":false,"excerpt":"This item creates a new folder in the specified folder on Box, and saves the folder ID and URL. When there is a folder with the same name, this item saves that folder ID and URL.","rel":"","context":"In &quot;BPMN Icons&quot;","block_context":{"text":"BPMN Icons","link":"https:\/\/support.questetra.com\/en\/category\/bpmn-icons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/02\/bpmn-icon-service-task-box.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/67400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/comments?post=67400"}],"version-history":[{"count":41,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/67400\/revisions"}],"predecessor-version":[{"id":158214,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/67400\/revisions\/158214"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media\/110854"}],"wp:attachment":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media?parent=67400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/categories?post=67400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/tags?post=67400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}