Copy const handleUploadFiles = async (event) => {
console.log("handleUploadFiles", event.currentTarget.files);
setFilesForUpload(event.currentTarget.files);
};
const uploadClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation for upload");
return;
}
if (!(filesForUpload && filesForUpload.length > 0)) {
alert("Please select the files for upload");
return;
}
console.log(
"uploading to allocation",
selectedAllocation.id,
filesForUpload
);
if (filesForUpload && filesForUpload.length > 0) {
const objects = [];
const allocationId = selectedAllocation.id;
for (const file of filesForUpload) {
objects.push({
allocationId: allocationId,
remotePath: `/${file.name}`,
file: file,
thumbnailBytes: null,
encrypt: false,
isUpdate: false,
isRepair: false,
numBlocks: 100,
callback: function (totalBytes, completedBytes, error) {
console.log(
file.name +
" " +
completedBytes +
"/" +
totalBytes +
" err:" +
error
);
},
});
}
const results = await bulkUpload(objects);
console.log("upload results", JSON.stringify(results));
}
};
const downloadClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation for download");
return;
}
if (!selectedFile) {
alert("Please select the file for download");
return;
}
console.log(
"downloading from allocation",
selectedAllocation.id,
selectedFile.path
);
//allocationID, remotePath, authTicket, lookupHash string, downloadThumbnailOnly bool, numBlocks int
const file = await download(
selectedAllocation.id,
selectedFile.path,
"",
"",
false,
10
);
console.log("downloaded file", file);
const a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
a.href = file.url;
a.download = file.fileName;
a.click();
window.URL.revokeObjectURL(file.url);
document.body.removeChild(a);
};
const shareClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation for share");
return;
}
if (!selectedFile) {
alert("Please select the file for share");
return;
}
console.log("share file", selectedAllocation.id, selectedFile.path);
//allocationId, filePath, clientId, encryptionPublicKey string, expireAt int, revoke bool,availableAfter string
const authTick = await share(
selectedAllocation.id,
selectedFile.path,
"",
"",
0,
false,
0
);
console.log("authTicket", authTick);
setAuthTicket(authTick);
};
const downloadSharedClick = async () => {
if (authTicket) {
console.log("downloading using authTicket", authTicket);
//allocationID, remotePath, authTicket, lookupHash string, downloadThumbnailOnly bool, numBlocks int
const file = await download("", "", authTicket, "", false, 10);
console.log("downloaded file", file);
const a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
a.href = file.url;
a.download = file.fileName;
a.click();
window.URL.revokeObjectURL(file.url);
document.body.removeChild(a);
}
};
const listFilesClick = async () => {
try {
const list = (await listObjects(selectedAllocation.id, "/")) || [];
console.log("file list", list);
setFilesList(list);
} catch (error) {
console.log("error:", error);
}
try {
const destList =
(await listObjects(selectedAllocation.id, "/test")) || [];
console.log("dest file list", destList);
setDestFilesList(destList);
} catch (error) {
console.log("error:", error);
}
};
const selectFile = (file) => {
setSelectedFile(file);
console.log("selected file", file);
};
const showLogsClick = async () => {
await showLogs();
};
const hideLogsClick = async () => {
await hideLogs();
};
const getAppendedFileName = (filename, postfix) => {
const isExtnExist = filename.lastIndexOf(".") > 0;
const newFileName = isExtnExist
? filename.substring(0, filename.lastIndexOf(".")) +
postfix +
filename.substring(filename.lastIndexOf("."), filename.length)
: filename + postfix;
console.log("getAppendedFileName", newFileName);
return newFileName;
};
const copyClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation");
return;
}
if (!selectedFile) {
alert("Please select the file for copy");
return;
}
console.log("copy file", selectedAllocation.id, selectedFile.path);
//allocationId, path, destination
await copyObject(selectedAllocation.id, selectedFile.path, "/test");
console.log("copy completed");
};
const moveClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation");
return;
}
if (!selectedFile) {
alert("Please select the file for move");
return;
}
console.log("move file", selectedAllocation.id, selectedFile.path);
//allocationId, path, destination
await moveObject(selectedAllocation.id, selectedFile.path, "/test");
console.log("move completed");
};
const deleteClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation");
return;
}
if (!selectedFile) {
alert("Please select the file for delete");
return;
}
console.log("delete file", selectedAllocation.id, selectedFile.path);
//allocationId, path
await deleteObject(selectedAllocation.id, selectedFile.path);
console.log("delete completed");
};
const renameClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation");
return;
}
if (!selectedFile) {
alert("Please select the file for rename");
return;
}
console.log("rename file", selectedAllocation.id, selectedFile.path);
//allocationId, path, newName
await renameObject(
selectedAllocation.id,
selectedFile.path,
getAppendedFileName(selectedFile.path, "_new")
);
console.log("rename completed");
};
let player;
let isPlayerReady = false;
const playClick = async () => {
player = document.getElementById("player");
if (!selectedAllocation) {
alert("Please select allocation");
return;
}
if (!selectedFile) {
alert("Please select the file for play");
return;
}
console.log("playing file", selectedAllocation.id, selectedFile.path);
if (isPlayerReady) {
if (player.paused) {
player.play();
}
} else {
const file = selectedFile;
console.log("playing file", file);
const isLive = file.type == "d";
if (file) {
const allocationId = selectedAllocation.id;
startPlay({
allocationId,
videoElement: player,
remotePath: file?.path,
authTicket: "",
lookupHash: file?.lookup_hash,
mimeType: file?.mimetype,
isLive: isLive,
});
isPlayerReady = true;
}
}
};
const playSharedClick = async () => {
player = document.getElementById("player");
if (isPlayerReady) {
if (player.paused) {
player.play();
}
} else {
const isLive = false;
if (authTicket) {
const allocationId = selectedAllocation.id;
startPlay({
allocationId,
videoElement: player,
remotePath: "",
authTicket: authTicket,
lookupHash: "",
mimeType: "",
isLive: isLive,
});
isPlayerReady = true;
}
}
};
const pauseClick = async () => {
player.pause();
};
const stopClick = async () => {
if (isPlayerReady) {
stopPlay({ videoElement: player });
isPlayerReady = false;
}
};
const createDirClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation");
return;
}
console.log("create Dir", selectedAllocation.id, dirName);
//allocationId, path
await createDir(selectedAllocation.id, "/" + dirName);
console.log("create Dir completed");
};
const getFileStatsClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation");
return;
}
if (!selectedFile) {
alert("Please select the file for file stats");
return;
}
console.log("getting file stats", selectedAllocation.id, selectedFile.path);
const fileStats = await getFileStats(
selectedAllocation.id,
selectedFile.path
);
console.log("file stats completed", fileStats);
};
const downloadBlocksClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation for download blocks");
return;
}
if (!selectedFile) {
alert("Please select the file for download blocks");
return;
}
console.log(
"downloading blocks from allocation",
selectedAllocation.id,
selectedFile.path
);
//allocationID, remotePath, authTicket, lookupHash string, numBlocks int, startBlockNumber, endBlockNumber int64, callbackFuncName string
const output = await downloadBlocks(
selectedAllocation.id,
selectedFile.path,
"",
"",
10,
0,
10
);
console.log("downloaded blocks", output);
};
const getLookupHashClick = async () => {
if (!selectedAllocation) {
alert("Please select allocation");
return;
}
if (!selectedFile) {
alert("Please select the file for lookup hash");
return;
}
console.log("lookup hash file", selectedAllocation.id, selectedFile.path);
//allocationId, path
const hash = await getLookupHash(selectedAllocation.id, selectedFile.path);
console.log("lookup hash completed", hash);
};