javascript - 如何从 Node 中的图片 url 将图片上传到 Google Cloud Storage?

标签 javascript node.js google-app-engine google-cloud-vision

给定一个图像 url,我如何将该图像上传到 Google Cloud Storage 以使用 Node.js 进行图像处理?

最佳答案

这是一个两步过程:

  • 使用 request 在本地下载文件或 fetch .
  • 用官方上传到GCL library .

    var fs = require('fs');
    var gcloud = require('gcloud');
    
    // Authenticating on a per-API-basis. You don't need to do this if you auth on a
    // global basis (see Authentication section above).
    
    var gcs = gcloud.storage({
      projectId: 'my-project',
      keyFilename: '/path/to/keyfile.json'
    });
    
    // Create a new bucket.
    gcs.createBucket('my-new-bucket', function(err, bucket) {
      if (!err) {
        // "my-new-bucket" was successfully created.
      }
    });
    
    // Reference an existing bucket.
    var bucket = gcs.bucket('my-existing-bucket');                
    var localReadStream = fs.createReadStream('/photos/zoo/zebra.jpg');
    var remoteWriteStream = bucket.file('zebra.jpg').createWriteStream();
    localReadStream.pipe(remoteWriteStream)
      .on('error', function(err) {})
      .on('finish', function() {
        // The file upload is complete.
      });
    

如果您想将文件保存为 jpeg 图像,您将需要编辑 remoteWriteStream 流并添加自定义元数据:

var image = bucket.file('zebra.jpg');
localReadStream.pipe(image.createWriteStream({
    metadata: {
      contentType: 'image/jpeg',
      metadata: {
        custom: 'metadata'
      }
    }
}))

我在挖掘这个 documentation 时发现了这个

关于javascript - 如何从 Node 中的图片 url 将图片上传到 Google Cloud Storage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36661795/

相关文章:

javascript - 使用 jQuery 获取 DIV 元素外的文本

javascript - ES6/ES7 中 'optional' 对象键的简洁/简洁语法?

javascript - 简单地尝试使用 <span> 字符来调用 javascript 函数来关闭下拉菜单

javascript - 如何在用户发送消息时停止 'is typing'功能

node.js - 带有 mongodb 和 nodejs 的实时 Web 应用程序

java - 缓存的值在 servlet 重启后仍然存在吗?

javascript - GAE Channel API - 通过 Javascript 检查套接字是否处于事件状态

javascript - 从数组填充嵌套对象?

java - 如何阻止 HTTP 并允许 HTTPS?

node.js - 使用 NodeJS 流式传输大型静态文件