Создавать копии (дубликаты) файлов в текущей папке для OneDrive (LIVE SDK API)

В Javascript я использую Live SDK REST API (это API для основных служб REST One Drive, как описано здесь: https://msdn.microsoft.com/en-us/library/hh826531.aspx), и я пытаюсь реализовать действие "Создать копию файла / дубликата", чтобы создать дубликаты (с измененными именами) на моем текущем пути. Когда я делаю запрос COPY, как здесь (где путь - это мой файл, который я хочу скопировать, а пункт назначения - его текущая папка):

function copyFile_onClick() {
    WL.login({
        scope: "wl.skydrive_update"
    }).then(
    function (response) {
        WL.api({
            path: "file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!141",
            method: "COPY",
            body: {
                destination: "folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!125"
            }
        }).then(
            function (response) {
                document.getElementById("infoArea").innerText = "Item copied.";
            }, 
            function (responseFailed) {
                document.getElementById("infoArea").innerText =
                    "Error calling API: " + responseFailed.error.message;
            }
        );
    },
    function (responseFailed) {
        document.getElementById("infoArea").innerText =
            "Login error: " + responseFailed.error_description;
    }
    );
}

Я получаю сообщение об ошибке, так как ресурс там уже существует (что вполне разумно). Однако я не могу найти способ добавить параметр filenameCopy1 в запрос, чтобы избежать этого.

Поэтому я думаю, что единственный способ сделать клонирование - это создать временную папку для копирования файла, затем переименовать его с именем filenameCopy1 и затем переместить обратно в текущую папку. Этот процесс действительно медленный и не настолько безопасный (например, что если произойдет только одно действие).

Любой совет действительно ценится. Благодарю.

0 ответов

Другие вопросы по тегам