【问题标题】:Upload file to google cloud storage with NodeJS使用 NodeJS 将文件上传到谷歌云存储
【发布时间】:2018-08-01 19:34:48
【问题描述】:

我的 upload.js 文件包含以下代码:

module.exports = {

    up: function () {
        const storage = require('@google-cloud/storage');
        const fs = require('fs');
        const gcs = storage({
            projectId: 'MY_PROJECT_ID',
            keyFilename: './service-account.json'
        });
        var bucket = gcs.bucket('MY_BUCKET');

        bucket.upload('picture.jpg', function(err, file) {
            if (err) throw new Error(err);
        });
    },
}

它通过终端工作,但我如何在表单提交按钮单击或仅从不同文件中调用它?

当我尝试时,它给了我:

无法读取未定义的属性“原型”

我对 NodeJs 很陌生,我真的不知道该怎么做。
不幸的是,谷歌文档对我没有帮助:/

【问题讨论】:

  • 您是否在浏览器控制台中收到此错误?或者如果它是一个不同的功能,你可以从那里分享代码吗?

标签: node.js google-cloud-platform google-cloud-storage


【解决方案1】:

我建议将您的 requires 移到第一行。

const storage = require('@google-cloud/storage');
const fs = require('fs');

module.exports = {
    up: function () {
        const gcs = storage({
            projectId: 'MY_PROJECT_ID',
            keyFilename: './service-account.json'
        });
        const bucket = gcs.bucket('MY_BUCKET');
        bucket.upload('picture.jpg', function(err, file) {
            if (err) throw new Error(err);
        });
    },
}

我也会console.log(storage) 并确认它已定义。

【讨论】:

    【解决方案2】:
    const { Storage } = require('@google-cloud/storage');
    
    const up = () => {
        const gcs = new Storage({
            projectId: 'xxxxxxxxx',
            keyFilename: './service-account.json'
        });
        const bucket = gcs.bucket('xxxxxxxxxx');
        bucket.upload('./test-rev.mkv', function (err, file) {
            if (err) throw new Error(err);
        });
    }
    

    【讨论】:

    • 使用代码格式编辑您的帖子,另外,请考虑在您的代码中添加任何解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多