Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从服务器上的Firebase功能访问Google云存储_Firebase_Google Cloud Platform_Google Cloud Functions_Google Cloud Storage - Fatal编程技术网

如何从服务器上的Firebase功能访问Google云存储

如何从服务器上的Firebase功能访问Google云存储,firebase,google-cloud-platform,google-cloud-functions,google-cloud-storage,Firebase,Google Cloud Platform,Google Cloud Functions,Google Cloud Storage,我想上传一些数据到谷歌云存储,然后在服务器上运行Firebase函数来处理数据 我这样做的原因是数据(表示我想导入Firestore的信息)可能非常大——可能是50MB。我可以很容易地得到代表30000个文档的数据。我不想在本地机器上处理数据,因为这可能需要几个小时 我的问题是我找不到从服务器本身访问云存储的方法。我可以轻松地在本地和服务器之间下载和上传文件。在过去的几个小时里,我一直在阅读文档,但所有内容似乎都是基于从本地实例访问云存储。当云存储发生更改时,您可以触发云功能运行。医生。上载或更

我想上传一些数据到谷歌云存储,然后在服务器上运行Firebase函数来处理数据

我这样做的原因是数据(表示我想导入Firestore的信息)可能非常大——可能是50MB。我可以很容易地得到代表30000个文档的数据。我不想在本地机器上处理数据,因为这可能需要几个小时


我的问题是我找不到从服务器本身访问云存储的方法。我可以轻松地在本地和服务器之间下载和上传文件。在过去的几个小时里,我一直在阅读文档,但所有内容似乎都是基于从本地实例访问云存储。

当云存储发生更改时,您可以触发云功能运行。医生。上载或更改的文件已经包含在元数据中,因此您不需要“访问存储”本身。从示例中可以看出:

/**
 * Generic background Cloud Function to be triggered by Cloud Storage.
 *
 * @param {object} data The event payload.
 * @param {object} context The event metadata.
 */
exports.helloGCSGeneric = (data, context) => {
  const file = data;
  console.log(`  Event ${context.eventId}`);
  console.log(`  Event Type: ${context.eventType}`);
  console.log(`  Bucket: ${file.bucket}`);
  console.log(`  File: ${file.name}`);
  console.log(`  Metageneration: ${file.metageneration}`);
  console.log(`  Created: ${file.timeCreated}`);
  console.log(`  Updated: ${file.updated}`);
};
如果希望从函数中直接访问存储器(例如,如果希望使用新的/更改的数据写回存储器),则可以使用存储SDK。所有受支持语言的示例如下。文档中的示例:

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();
// Creates a client from a Google service account key.
// const storage = new Storage({keyFilename: "key.json"});

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const bucketName = 'bucket-name';

async function createBucket() {
  // Creates the new bucket
  await storage.createBucket(bucketName);
  console.log(`Bucket ${bucketName} created.`);
}

createBucket();

一个非常重要的警告云函数的最大执行时间约为60秒()。因此,长时间运行长达15分钟的进程应该改为使用。较长时间运行的流程应该在这样的环境中运行(您可以从功能启动并将工作委托给App Engine实例)。

当云存储发生更改时,您可以触发云功能运行。医生。上载或更改的文件已经包含在元数据中,因此您不需要“访问存储”本身。从示例中可以看出:

/**
 * Generic background Cloud Function to be triggered by Cloud Storage.
 *
 * @param {object} data The event payload.
 * @param {object} context The event metadata.
 */
exports.helloGCSGeneric = (data, context) => {
  const file = data;
  console.log(`  Event ${context.eventId}`);
  console.log(`  Event Type: ${context.eventType}`);
  console.log(`  Bucket: ${file.bucket}`);
  console.log(`  File: ${file.name}`);
  console.log(`  Metageneration: ${file.metageneration}`);
  console.log(`  Created: ${file.timeCreated}`);
  console.log(`  Updated: ${file.updated}`);
};
如果希望从函数中直接访问存储器(例如,如果希望使用新的/更改的数据写回存储器),则可以使用存储SDK。所有受支持语言的示例如下。文档中的示例:

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();
// Creates a client from a Google service account key.
// const storage = new Storage({keyFilename: "key.json"});

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const bucketName = 'bucket-name';

async function createBucket() {
  // Creates the new bucket
  await storage.createBucket(bucketName);
  console.log(`Bucket ${bucketName} created.`);
}

createBucket();

一个非常重要的警告云函数的最大执行时间约为60秒()。因此,长时间运行长达15分钟的进程应该改为使用。较长时间运行的进程应该在这样的环境中运行(您可以从您的功能开始,将工作委托给App Engine实例)。

在后端代码中,您可以使用多种语言的SDK来处理云存储。你只是在寻找这些方面有困难吗?是的@DougStevenson,我猜SDK太多了,这很让人困惑。我一直在关注你们关于“云功能入门”的视频,访问云Firestore没有问题。我只是看不到访问云存储需要做什么。此时此刻,我只想发布到HTTP端点,然后在该函数中,我想从云存储中获取一个文件。我就是不知道该怎么做。你用的是哪一种?说清楚点,我用的是云功能,当我说“服务器”时,我指的是谷歌云。在这个场景中,我认为我必须使用NodeSDK。我找到了这个教程,但它只展示了如何响应云存储事件。您还可以使用Firebase Admin SDK,它封装了云节点SDK。这些很容易找到。有很多不同语言的SDK,你可以在后端代码中使用它们来处理云存储。你只是在寻找这些方面有困难吗?是的@DougStevenson,我猜SDK太多了,这很让人困惑。我一直在关注你们关于“云功能入门”的视频,访问云Firestore没有问题。我只是看不到访问云存储需要做什么。此时此刻,我只想发布到HTTP端点,然后在该函数中,我想从云存储中获取一个文件。我就是不知道该怎么做。你用的是哪一种?说清楚点,我用的是云功能,当我说“服务器”时,我指的是谷歌云。在这个场景中,我认为我必须使用NodeSDK。我找到了这个教程,但它只展示了如何响应云存储事件。您还可以使用Firebase Admin SDK,它封装了云节点SDK。这些很容易找到。加藤,你所说的“大约60秒的最大执行时间”不是9分钟,60秒是默认值。加藤,你所说的“大约60秒的最大执行时间”不是9分钟,60秒是默认值。