Asked thg 3 20, 2023 2:44 SA 129 0 1
  • 129 0 1
0

Upload file lên GCP nhưng bị memory leak

Share
  • 129 0 1

Chào mọi người, e đang gặp vấn đề là upload lên GCP nhưng khi upload xog thì bị dính memory leak

let streamFile = createReadStream();

streamFile
        .pipe(transformer)
        .on('error', () => reject(error))
        .pipe(
          file.createWriteStream({
            public: IsPublicImage,
            metadata: { contentType: mimetype },
            resumable: false,
          }),
        )
        .on('finish', async () => {
          streamFile.deytroy();
          file = null;
          transformer = null;
          streamFile = null;
          return IsPublicImage
            ? resolve(`pathObject(fileName)`)
            : resolve(fileName);
        })
        .on('error', () => reject(error)),
    ```
    
    Mọi người cho e hỏi có cách nào upload lên GCP mà không bị memory leak không ạ, e cảm ơn

1 ANSWERS


Answered thg 3 20, 2023 4:21 SA
0

Bạn tách phần release ở chỗ handle finish ra thành 1 hàm gọi là release() {...}. Rồi gọi trong cả các chỗ bị error. Ngoài ra bạn kiểm tra kỹ lại xem on('finish') có đúng khi sử dụng trong trường hợp này không.

Share
thg 3 20, 2023 6:04 SA

mình có thử rồi mà vẫn k được bác ạ, thử chuyển finish -> end luôn rồi.

0
| Reply
Share
Avatar Quang Nguyễn @quangnv1311
thg 3 20, 2023 6:36 SA

@thuongne123 Thử console log xem nó có vào không đã nhé

0
| Reply
Share
Avatar Quang Nguyễn @quangnv1311
thg 3 20, 2023 6:36 SA

@quangnv1311 Sợ rằng có thể nó không thể finish hoặc end nên bị stuck mãi ở đó mà mình không biết.

0
| Reply
Share
thg 3 20, 2023 6:37 SA

@quangnv1311 finish thì vào end thì k. console xem thử readStream thì cũng báo destroyed.

0
| Reply
Share
Avatar Quang Nguyễn @quangnv1311
thg 3 20, 2023 7:40 SA

@thuongne123 Thế bạn chắc chắn là bị memory leak chưa nhỉ. Bạn đang check memory leak bằng cách nào.

0
| Reply
Share
thg 3 20, 2023 7:45 SA

@quangnv1311 mình check Monitoring trên GCP, khi upload đoạn này, memory dựng đứng và clear, còn các request bth thì vẫn clear

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.