2017-09-18 4 views
0

YouTubeにはファイルをアップロードしようとしていますが(S3 URLのみ利用可能)、Dyno on Herokuは常に "メモリクォータを超えました"メッセージ。私は、ファイル(またはその一部)がYouTubeにアップロードされている間にメモリに保存されていますが、その理由を理解していません。ローカルで1GBのファイルでテストされ、メモリ使用量が大幅に変化することはありませんでした。誰かがこれを修正し、サーバーにGBのメモリを持たずにYouTubeに任意のサイズのファイルをアップロードできるようになる手がかりを持っていますか?YouTubeにURL経由でファイルをアップロードすると、Heokuで「メモリクォータを超えました」と表示される

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'); 
    }); 
} 

答えて

0

よしは、解決策を見つけた:あなただけ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' 
       } 
      }, 
     }; 
関連する問題