【发布时间】:2018-02-27 18:10:21
【问题描述】:
使用以下代码将文件从 S3 上传到 youtube:
s3.setBucket('MyBucket');
s3.get('MyBucket/5/' + filename, null, 'stream', function(err, response) {
googleapis.discover('youtube', 'v3').execute(function(err, client) {
var metadata = {
snippet: { title: title, description: description},
status: { privacyStatus: 'public' }
};
client
.youtube.videos.insert({ part: 'snippet,status'}, metadata)
.withMedia('video/mp4', response)
.withAuthClient(auth)
.execute(function(err, result) {
if (err) console.log(err);
else console.log(JSON.stringify(result, null, ' '));
response.redirect('/share?set=yt&id=' + result.id);
}); }); });
不起作用,因为行:
.withMedia('video/mp4', response)
它是原始版本的替代品,有效:
fs.readFileSync('/temp/myfile.png')
换句话说:如果我在笔记本电脑上上传本地文件,这将起作用,因为我正在使用文件系统对象。
【问题讨论】:
-
Google API 是否允许从文件流上传?如果没有,那么您需要先将文件下载为临时文件,然后从那里上传。
-
不知道这是否允许:(而且也没有太多关于它的文档。
-
流到流的复制效率更高,两个 API 都支持它。否则,您可能需要将文件写入临时磁盘位置并从那里发送。
-
您找到解决方案了吗?
标签: node.js amazon-web-services youtube amazon-s3