put(url, withCredentials, headers) {
    let encodedUrl = window.encodeURIComponent(url);
    return this.storage.getItem(encodedUrl).then(result => {
      if (!result) {
        return this.requester(url, "binary", withCredentials, headers).then(data => {
          return this.storage.setItem(encodedUrl, data);
        });
      }

      return result;
    });
  }
Put binary data from a url to storage
@param  {string} url  a url to request from storage
@param  {boolean} [withCredentials]
@param  {object} [headers]
@return {Promise<Blob>}