在云存储中上传文件

17 Mar 2025 | 4 分钟阅读

云存储为开发者提供了快速、轻松地将文件上传到 Google Cloud Storage 存储桶的功能,该存储桶由 Firebase 提供或管理。 默认情况下,Firebase 身份验证是上传云存储桶中文件所必需的。 但是,我们可以修改 Firebase 安全规则以允许未经身份验证的访问。

Upload files in Cloud Storage

由于默认情况下,Engine 应用程序、Google 应用程序和 Firebase 共享此存储桶,因此配置公共访问权限也可以使新上传的 App Engine 文件可公开访问。 设置身份验证时,请务必再次访问我们的存储桶。

要将文件上传到云存储,我们首先将创建一个对文件完整路径及其文件名的引用。

创建适当的引用后,我们调用 putBytes()、putFile() 或 putStream() 方法将文件上传到云存储。 我们无法使用对 Google Cloud Storage 存储桶根目录的引用来上传数据。 我们的引用必须指向子 URL。

从内存中的数据上传

putBytes() 方法是最简单的方法,通过它我们可以轻松地将文件上传到云存储。 putBytes() 方法接受一个 byte[] 并返回一个 UploadTask,我们可以使用它来管理和监视上传的状态。

由于 putBytes() 接受 byte[],因此它要求我们的应用程序一次将文件的全部内容保存在内存中。 我们考虑使用 putStream()putFile() 以使用更少的内存。

从流中上传

将文件上传到云存储的最 灵活 方法是使用 putStream() 方法。 此方法接受一个 InputStream 并返回一个 UploadTask,它将用于管理和监视上传的状态。

从本地文件上传

我们可以使用 putFile() 方法上传设备上的本地文件。 此方法接受一个 File 作为输入,并返回一个 UploadTask,我们可以使用它来管理和监视上传的状态。

上传后获取下载 URL

要下载文件,我们需要一个 URL。 为了获取 URL,我们必须在 StorageReference 上调用 getDownloadUrl() 方法。

管理上传

还有一些其他方法可用,例如 pause()、resume()cancel(),它们用于暂停、恢复或取消上传。 分别在暂停和恢复事件中暂停和进度状态更改。 取消上传会导致上传失败,并显示指示上传已取消的错误。

完整示例

带有进度监视和错误处理的上传示例如下所示


下一主题Firebase 托管