【问题标题】:Google Cloud Storage: Uploaded Media files is corrupted using XML API谷歌云存储:上传的媒体文件使用 XML API 损坏
【发布时间】:2018-10-02 02:43:58
【问题描述】:

我只是使用带有 Ajax Upload 的签名 url 将文件上传到谷歌云存储。

function uploadToGCS(url,file,callback) {
  var ajax = new XMLHttpRequest();

  //PROGRESS HANDLER
  ajax.upload.addEventListener("progress", function(event) {
    if (event.lengthComputable) {
      var percent = ((event.loaded / event.total) * 100);
      if(callback != null) {
        callback(0,Math.round(percent));
      }
    }

  }, false);

  //COMPLETE HANDLER
  ajax.addEventListener("load", function(event) {
    if(callback != null) {
      callback(1,0);
    }
  }, false);

  //ERROR HANDLER
  ajax.addEventListener("error", function(event) {
    if(callback != null) {
      callback(-1,0);
    }
  }, false);

  //ABORT HANDLER
  ajax.addEventListener("abort", function(event) {
    if(callback != null) {
      callback(-2,0);
    }
  }, false);

  ajax.open("PUT", url,true);
  var fd = new FormData();
  fd.append('file', file);

  ajax.setRequestHeader('Content-Type', file.type);    
  ajax.send(fd);
}

已完全上传。但是尝试从 Bucket 下载文件,文件像媒体文件一样损坏,否则 pdf,txt 文件工作正常。有什么建议请给我建议谢谢。

【问题讨论】:

    标签: google-cloud-storage


    【解决方案1】:

    通过不带表单数据直接发送文件解决了这个问题。

    像这样:

    ajax.open("PUT", url,true);
    ajax.setRequestHeader('Content-Type', file.type);    
    ajax.send(file);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-03
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 2019-06-09
      • 1970-01-01
      • 2018-08-01
      相关资源
      最近更新 更多