Eueno
  • EUENO – Decentralized Encrypting Blockchain Oracles for Web3
    • Litepaper
    • Use Cases
  • Get Started
    • Prerequisites
    • Buckets
      • Create a bucket
      • Delete a bucket
    • Files
      • Upload a file
      • View a file
      • Delete a file
      • Share a file
  • Pricing
  • Eueno libraries
    • @eueno/lib-browser
      • Installation
      • Setup
      • Create key (generate a key for encrypting the file(s))
      • login()
      • useEuenoContext()
      • getUserInfo()
      • updateUserInfo()
      • createProject()
      • getProjectInfo()
      • getProjects()
      • getFilesListByFolder()
      • deleteProject()
      • createFolder()
      • uploadFolder()
      • Get folder detail
      • deleteFolder()
      • uploadFile()
      • uploadFileWithSignedUrl()
      • getCid()
      • getFileById()
      • getFileListById()
      • Get file detail
        • getDetailFile()
        • getDetailUnencryptedFile()
        • getDetailEncryptedFile()
      • getDetailMultiEncryptedFiles()
      • deleteFile()
      • shareFile()
      • shareMultiFile()
      • deleteSharePermission()
      • getShareList()
      • getShareListToMe ()
    • @eueno/lib-node
      • Create eueno client
      • Create project key
      • Create project
      • Upload file
      • Upload folder
      • Get file
      • Get list file
      • Share file
      • Get shared files
      • Create folder
      • Create Account
      • Decrypt Get Key Aes
      • Decrypt File by Key Aes
  • Policies
    • Privacy Policy
    • Terms of Service
Powered by GitBook
On this page
  1. Eueno libraries
  2. @eueno/lib-browser

Get file detail

PreviousgetFileListById()NextgetDetailFile()

Last updated 2 years ago

On this page, we will show how to get file detail for both encrypted and unencrypted files.

To do that, we need 3 methods:

Example

import {
  getDetailFile,
  getDetailEncryptedFile,
  getDetailUnencryptedFile
} from "@eueno/lib-browser";
  
  const getFile = async (id, token) => {
    if (!id || !token) return;
    const fileDetail = await getDetailFile(id);
    if (!fileDetail) {
      console.error("File not found");
      return;
    }

    let bufferData;
    if (fileDetail.encryptKey) {
      bufferData = await getDetailEncryptedFile(
        fileDetail.torrentUrl,
        fileDetail.encryptKey,
        token,
        isShare ? true : false,
        [fileDetail.url, fileDetail.backupUrl],
        account,
        (torrent, remaining) => {
          dispatch(
            setTorrentInfo({
              download: torrent.downloadSpeed,
              upload: torrent.uploadSpeed,
              remain: remaining,
            })
          );
        }
      );
    } else {
      bufferData = await getDetailUnencryptedFile(
        token,
        fileDetail.torrentUrl,
        (torrent, remaining) => {
          dispatch(
            setTorrentInfo({
              download: torrent.downloadSpeed,
              upload: torrent.uploadSpeed,
              remain: remaining,
              peers: torrent.numPeers,
              progress: torrent.progress,
            })
          );
        }
      );
    }
    
    if (!bufferData) {
      console.error("Decrypt failed !");
      return;
    }

    //Render buffer data
    const output = document.getElementById("output");
    const filePreview = {
      name: fileDetail.name,
      createReadStream: function (opts) {
        if (!opts) opts = {};
        return From([
          bufferData?.slice(opts.start || 0, opts.end || bufferData.length),
        ]);
      },
    };
    if (output) {
      render.append(filePreview, output, function (err, elem) {
        if (err) {
          console.log(err);
          setMessage("This file preview is not supported!");
        }
      });
    }
  };
getDetailFile()
getDetailUnencryptedFile()
getDetailEncryptedFile()