私が一番やってたのはSharePoint2013で、そん時のjavascriptから使えそうなファイルコピーAPIって同じサイト内でしか使えなくて、サイトを跨いだコピーは簡単には出来なかった記憶がありました。
参考:https://msdn.microsoft.com/en-us/library/office/dn450841.aspx#bk_FileCopyTo
だからコピーしたいファイルをバイナリでダウンロードしてダイジェスト取得してアップロードするみたいな超煩わしい手順でしか無理でした。
(まあ私はこのサイト見ても出来ませんでしたがね!!)
参考:https://www.techmikael.com/2013/07/how-to-copy-files-between-sites-using.htmlhttps://www.techmikael.com/2013/07/how-to-copy-files-between-sites-using.html
んで同じ問題にこの前ぶち当たって、UIあんのに出来ないなんておかしいだろ!って改めて調べたところ、2016から実装されていたみたいです。
参考:https://docs.microsoft.com/ja-jp/previous-versions/office/mt162552(v=office.15)
SharePointのサイトを開いた状態で開発者ツール(F12)を開いて下のコードを叩いてみましょう。あら簡単、コピー出来ちゃった。
var ctx = SP.ClientContext.get_current();
SP.MoveCopyUtil.copyFile(ctx, "<コピー元ファイルのフルパス>", "<コピー先ファイルのフルパス>");
ctx.executeQueryAsync(
function () {},
function () {}
);
サイトコレクションも跨げます。copyFileだけじゃなくて、moveFile、moveFolder、copyFolderもあるので、フォルダ単位の移動/コピーも出来そうです。素敵ですね。もっと早く教えてほしかった。
技術系の検索は1年以内とかで絞ることの重要性を強く感じました。