ブラウザでGCP Consoleを使用しています。私は次のように関数を作成しました:
function listFiles(bucketName) {
// [START storage_list_files]
// Imports the Google Cloud client library
const Storage = require('@google-cloud/storage');
// Creates a client
const storage = new Storage();
storage
.bucket(bucketName)
.getFiles()
.then(results => {
const files = results[0];
console.log('Files:');
files.forEach(file => {
console.log(file.name);
});
})
.catch(err => {
console.error('ERROR:', err);
});
// [END storage_list_files]
}
exports.helloWorld = function helloWorld (req, res) {
if (req.body.message === undefined) {
// This is an error case, as "message" is required
res.status(400).send('No message defined!');
}
else {
// Everything is ok
console.log(req.body.lat);
console.log(req.body.lon);
listFiles("drive-test-demo");
res.status(200).end();
}
}
文字通り、私が今やろうとしているのは、特定のHTTPSトリガーが通過した場合にバケット内のファイルを一覧表示することだけです。
私のpackage.jsonファイルは次のとおりです:
{
"name": "sample-http",
"version": "0.0.1",
"dependencies": {
"@google-cloud/storage": "1.5.1"
}
}
「モジュール '@ google-cloud/storage'が見つかりません」というエラーが表示されます
これまでに見たほとんどのクエリはnpm installを使用して解決されましたが、index.jsファイルとpackage.jsonファイルがgcloudバケット内のZipファイルに格納されていることを考えると、その方法はわかりません。これを解決する方法についてのアドバイスは高く評価されます。
コンソールを開き、dirをfunctionsプロジェクトに変更して、次のように入力します。
npm install --save @google-cloud/storage
それで全部です!