Helpex - Trao đổi & giúp đỡ Đăng nhập
10

Tôi đang xây dựng một Ứng dụng và mục tiêu của tôi là mỗi khi ai đó tải hình ảnh lên bộ nhớ firebase, chức năng đám mây sẽ thay đổi kích thước hình ảnh đó.

...
import * as Storage from '@google-cloud/storage'
const gcs = new Storage()
...

exports.resizeImage = functions.storage.object().onFinalize( async object => {
   const bucket = gcs.bucket(object.bucket);
   const filePath = object.name;
   const fileName = filePath.split('/').pop();
   const bucketDir = dirname(filePath);
....

Và khi tôi cố gắng triển khai tính năng này, tôi gặp lỗi này:

Error: Error occurred while parsing your function triggers.

TypeError: Storage is not a constructor

Tôi đã thử với "new Storage ()" hoặc chỉ "Storage" và không có gì hoạt động.

Tôi là người mới xung quanh đây nên nếu có bất cứ điều gì tôi quên cho bạn để gỡ lỗi này, hãy cho tôi biết.

Cảm ơn!


google-cloud / storage: 2.0.0

Nút js: v8.11.4

10 hữu ích 0 bình luận 5.9k xem chia sẻ
28

Các tài liệu API cho Cloud Storage gợi ý rằng bạn nên sử dụng cần để nạp module:

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

Điều này áp dụng cho các phiên bản Cloud Storage trước phiên bản 2.x.

Trong 2.x, có một thay đổi API vi phạm. Bạn cần làm điều này ngay bây giờ:

const { Storage } = require('@google-cloud/storage');

Nếu bạn muốn liên kết TypeScript, hãy cân nhắc sử dụng Cloud Storage thông qua SDK quản trị Firebase. SDK quản trị chỉ đơn giản bao bọc mô-đun Lưu trữ đám mây và cũng xuất các liên kết loại để đi cùng với nó. Rất dễ sử dụng:

import * as admin from 'firebase-admin'
admin.initializeApp()
admin.storage().bucket(...)

admin.storage() cung cấp cho bạn một tham chiếu đến đối tượng Storage mà bạn đang cố gắng làm việc.

28 hữu ích 3 bình luận chia sẻ
0

Chỉ vì mục đích kiến ​​thức nếu các bạn đang sử dụng phương pháp tiếp cận mô-đun ES và nút 12, đoạn mã dưới đây sẽ hoạt động. Tôi không thể làm cho cú pháp nào khác hoạt động ~

import storagePackage from '@google-cloud/storage';
const { Storage } = storagePackage;
const storage = new Storage();
0 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ node.js firebase google-cloud-storage google-cloud-functions , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading