web-dev-qa-db-ja.com

NodeJSを使用してファイルをGoogleクラウドストレージにアップロードします

私のpload.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にまったく慣れていないので、どうしたらよいかわかりません。
残念ながら、Googleのドキュメントはまったく役に立ちません:/

6
Pavel Havlík

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)を実行して、定義されていることを確認します。

5
Daniel Rasmuson
`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);
    });
}
`
1