在ionic 3中下载文件之前如何加密?

时间:2019-05-09 09:55:38

标签: encryption ionic3

我已经开发了可下载视频的应用程序。但是下载的视频只能通过我的应用程序打开(例如youtube)。因此,我决定在下载视频文件之前先对其进行加密。 我从api获得视频网址,就像http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4。我必须加密BigBuckBunny.mp4文件并使用cryto-js加密将其存储到内部storage.im。

downloadVideo(url){
    let link = url;
    let path = '';
    let dir_name = 'training_videos';
    let file_name = this.GetFilename(url)+'.mp4';

    let encryted_file=CryptoJS.AES.encrypt(file_name, '123')

    const fileTransfer = this.transfer.create();
  let result = this.file.createDir(this.file.externalRootDirectory+'/ayc/training_videos/', dir_name, true);
result.then((resp) => {
  path = resp.toURL();
  console.log(path);

  fileTransfer.onProgress((progressEvent) => {
    // alert(progressEvent);
  var perc = Math.floor(progressEvent.loaded / progressEvent.total * 100);
  this.progress = perc;
  // alert(this.progress);
  });

  fileTransfer.download(link, path + encryted_file).then((entry) => {
   alert('download complete: ' + entry.toURL());
  }, (error) => {
    console.log(error)
  });
}, (err) => {
  alert('error on creating path : ' + err);
});
  }

//get file name from url
GetFilename(url)
{
   if (url)
   {
      var m = url.toString().match(/.*\/(.+?)\./);
      if (m && m.length > 1)
      {
         return m[1];
      }
   }
   return "";
}

我希望输出加密的视频文件不应在文件管理器中播放。

0 个答案:

没有答案