gpt4 book ai didi

node.js - 通过URL将文件上传到YouTube会导致Heroku上的 “Memory quota exceeded”

转载 作者:行者123 更新时间:2023-12-03 06:14:17 26 4
gpt4 key购买 nike

我正在尝试将文件(仅S3 URL可用)上载到YouTube,但是Heroku上的Dyno总是崩溃,并显示“内存配额超出”错误消息。恐怕文件(或文件的一部分)在上传到YouTube时会存储在内存中,但不知道为什么。在本地使用1GB的文件进行了测试,并没有发现内存使用发生明显变化。是否有人知道如何解决此问题,并能够在服务器上没有大量GB内存的情况下将任何大小的文件上传到YouTube?

import * as rp from 'request-promise';
const Youtube = require('youtube-api');

function upload(config, credentials, fileUrl) {
const oauth2 = Youtube.authenticate({
client_id: config.youtube.clientId,
client_secret: config.youtube.clientSecret,
redirect_url: config.youtube.redirectUrl,
type: 'oauth',
});

oauth2.setCredentials(credentials);

const params = {
auth: oauth2,
media: {
body: rp(fileUrl),
mimeType: 'application/octet-stream'
},
part: 'snippet,status',
resource: {
snippet: {
description: 'my description',
title: 'my title'
},
status: {
privacyStatus: 'private'
}
},
};
Youtube.videos.insert(params, function (error, result) {
if (error) {
console.log(error);
}
console.log('success');
});
}

最佳答案

好了,找到了解决方案:您只需要集成S3 sdk并创建一个readstream!见下文

const readStream = s3.getObject(s3Params).createReadStream();

const params = {
auth: oauth2,
media: {
body: readStream,
mimeType: 'video/' + videoFormat
},
part: 'snippet,status',
resource: {
snippet: {
description: videoProject.shortDescription + videoProject.longDescription,
title: title
},
status: {
privacyStatus: 'private'
}
},
};

关于node.js - 通过URL将文件上传到YouTube会导致Heroku上的 “Memory quota exceeded”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46282878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com