2016-12-21 5 views
0

Используя dropbox, вы можете создать ярлык, перетащив URL-адрес в папку Dropbox. Это будет сохранено, как это: example of a url in dropboxПрочитайте загруженный blob из API Dropbox, используя HTTP

Использование /2/files/download HTTP API от раздаточной возвращает ответ XHR, который выглядит примерно так: raw data returned from dropbox

Как вы разобрать этот ответ, так что вы можете получить только URL и сделать ссылку кликабельной?

+0

[Сшивка для справки: https://www.dropboxforum.com/t5/API-support/Get-the-URL-path-from-a-link-bookmark-url-file/mp/199000 # M9218] – Greg

ответ

0

Вот что нужно для входа в Угловую 1 фабрику. Чтобы использовать это, вы просто вызываете функцию downloadFile из контроллера и указываете путь к файлу в своей учетной записи Dropbox.

function downloadFile(filePath) { 
      if (!filePath) { 
       console.error('Cannot download file because no file was specified.'); 
       return; 
      } 
      return $q(function(fulfill, reject) { 
       $http({ 
        url: 'https://content.dropboxapi.com/2/files/download', 
        method: 'POST', 
        headers: { 
         'Authorization': 'Bearer {{access-token-goes-here}}', 
         'Dropbox-API-Arg': `{"path": "${filePath}"}` 
        }, 
        responseType: 'blob' 
       }).then(
        results => { 
         // data received from dropbox is binary data saved as a blob 
         // The FileReader object lets web applications asynchronously read the contents of files 
         // https://developer.mozilla.org/en-US/docs/Web/API/FileReader 
         var fileReader = new FileReader(); 
         // function will run after successfully reading the file 
         fileReader.onload = function() { 
          var string = this.result; // store the file contents 
          string = encodeURI(string); // get rid of the paragraph return characters 
          var endPosition = string.indexOf('%0D%0A', 32); // find the end of the URL, startPosition is 32 
          var actualURL = string.substring(32, endPosition); // grab only the characters between start and end positions 
          fulfill(actualURL); 
         }; 
         fileReader.readAsText(results.data);       
        }, 
        error => reject(error)); 
      }); 
     } 
+0

Кстати, может быть хорошей идеей полностью проанализировать данные, а не полагаться на требуемые данные URL, начиная с позиции 32, так как похоже, что есть другие вещи, которые потенциально могут быть включены. Например, см. Это неофициальное руководство: http://www.lyberty.com/encyc/articles/tech/dot_url_format_-_an_unofficial_guide.html – Greg