小编Dav*_*vid的帖子

使用ajax通过签名url将文件上传到谷歌云存储

我尝试使用签名网址将文件上传到我的 Google Cloud Storage。

  • 我已使用gsutil在我的存储桶上设置了 CORS 参数
  • 浏览器向 Django 后端发送 ajax 请求以获取签名的 url
  • Django 后端向GCS发出请求以创建签名 URL
  • 签名的 URL 将发送回浏览器。
  • 我尝试使用ajax中的签名网址将视频文件(内容类型=“video/mp4”)上传到GCS
  • 向GCS 的请求返回状态码 200
  • 最后但并非最不重要的一点是,在我的存储桶中创建了一个空文件......

如何防止上传空文件?
我没有在 GCS 文档中看到,也没有在 stackoverflow 上看到有什么问题

function ajaxSendToStorage(url, file, row){
  $.ajax({
    method: 'PUT',
    dataType: "xml",
    contentType: file.type,
    crossDomain: true,
    data: file,
    url: url,
    beforeSend: function (request){
        request.setRequestHeader("Content-Type", 'multipart/formdata; charset=UTF-8');
    },
    success: function(data) {
        storageLoadComplete(row)
    },
    complete: function() {
        // do something when complete
    },
  });
}
Run Code Online (Sandbox Code Playgroud)

...这是我在控制台日志中得到的内容:

一般的

请求网址: https://test-dev-flowker.storage.googleapis.com/media/uploads/FR/flowker_e6938cf0/2020/3/full_9140a387-0595-4ea7-9fdd-f5d525e57515.mp4 ?X-Goog-Algorithm=GOOG4 …

ajax jquery google-cloud-storage google-cloud-platform

0
推荐指数
1
解决办法
3867
查看次数