作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将文件(仅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/
我是一名优秀的程序员,十分优秀!