前提
Twitter API を利用し、mp4ファイルをアップロードしようとした時に発生
参考メディアのアップロード
手順通りinitから始めて、appendで失敗
実現したいこと
httpステータスコード0解消
リクエストを成功させたい
該当のソースコード
ruby
1def media_upload(url,media_id,mp4) 2 chunk_size = 5*1024*1024 3 total = 0 4 f = File.open(mp4,'rb') 5 segment = 0 6 until f.eof? 7 chunk = f.read(chunk_size) 8 options = { 9 :method => :post, 10 headers: { 11 "ContentType": "multipart/form-data" 12 }, 13 params:{ 14 command: "APPEND", 15 media_id: media_id, 16 media: chunk, 17 segment_index: segment 18 } 19 } 20 request = Typhoeus::Request.new(url, options) 21 response = request.run 22 total+=chunk.size 23 p response.code , response.return_message 24 segment += 1 25 end 26 p "サイズ",total == File.size(mp4) 27end
0 "URL using bad/illegal format or missing URL" 0 "URL using bad/illegal format or missing URL" 0 "Out of memory"
試したこと
チャンクサイズの合計が元のファイるサイズになってるので、チャンク化自体は成功しているはずです
チャンクのサイズを変更するとエラーメッセージが変わります
chunk_size
10 2"Out of memory" 30 4"Out of memory" 50 6"Failed sending data to the peer"
補足情報(FW/ツールのバージョンなど)
docker
ruby 2.7.4
gem
typhoeus
あなたの回答
tips
プレビュー