diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2016-12-29 12:13:19 +0100 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2016-12-29 12:13:19 +0100 |
commit | 4d32448895ad29ef694bcf790d59253249ad5939 (patch) | |
tree | c81643455db459dd90f004a7d2669e22a092fa4f /server/models | |
parent | 98ac898a03ed7bbb4edec74fe823b3f2d6d4904a (diff) | |
download | PeerTube-4d32448895ad29ef694bcf790d59253249ad5939.tar.gz PeerTube-4d32448895ad29ef694bcf790d59253249ad5939.tar.zst PeerTube-4d32448895ad29ef694bcf790d59253249ad5939.zip |
Server: use binary data instead of base64 to send thumbnails
Diffstat (limited to 'server/models')
-rw-r--r-- | server/models/video.js | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/server/models/video.js b/server/models/video.js index 564e362fd..0e84e8986 100644 --- a/server/models/video.js +++ b/server/models/video.js | |||
@@ -1,5 +1,6 @@ | |||
1 | 'use strict' | 1 | 'use strict' |
2 | 2 | ||
3 | const Buffer = require('safe-buffer').Buffer | ||
3 | const createTorrent = require('create-torrent') | 4 | const createTorrent = require('create-torrent') |
4 | const ffmpeg = require('fluent-ffmpeg') | 5 | const ffmpeg = require('fluent-ffmpeg') |
5 | const fs = require('fs') | 6 | const fs = require('fs') |
@@ -106,7 +107,7 @@ module.exports = function (sequelize, DataTypes) { | |||
106 | classMethods: { | 107 | classMethods: { |
107 | associate, | 108 | associate, |
108 | 109 | ||
109 | generateThumbnailFromBase64, | 110 | generateThumbnailFromData, |
110 | getDurationFromFile, | 111 | getDurationFromFile, |
111 | list, | 112 | list, |
112 | listForApi, | 113 | listForApi, |
@@ -336,7 +337,7 @@ function toFormatedJSON () { | |||
336 | function toRemoteJSON (callback) { | 337 | function toRemoteJSON (callback) { |
337 | const self = this | 338 | const self = this |
338 | 339 | ||
339 | // Convert thumbnail to base64 | 340 | // Get thumbnail data to send to the other pod |
340 | const thumbnailPath = pathUtils.join(constants.CONFIG.STORAGE.THUMBNAILS_DIR, this.getThumbnailName()) | 341 | const thumbnailPath = pathUtils.join(constants.CONFIG.STORAGE.THUMBNAILS_DIR, this.getThumbnailName()) |
341 | fs.readFile(thumbnailPath, function (err, thumbnailData) { | 342 | fs.readFile(thumbnailPath, function (err, thumbnailData) { |
342 | if (err) { | 343 | if (err) { |
@@ -351,7 +352,7 @@ function toRemoteJSON (callback) { | |||
351 | remoteId: self.id, | 352 | remoteId: self.id, |
352 | author: self.Author.name, | 353 | author: self.Author.name, |
353 | duration: self.duration, | 354 | duration: self.duration, |
354 | thumbnailBase64: new Buffer(thumbnailData).toString('base64'), | 355 | thumbnailData: thumbnailData.toString('binary'), |
355 | tags: map(self.Tags, 'name'), | 356 | tags: map(self.Tags, 'name'), |
356 | createdAt: self.createdAt, | 357 | createdAt: self.createdAt, |
357 | extname: self.extname | 358 | extname: self.extname |
@@ -363,12 +364,12 @@ function toRemoteJSON (callback) { | |||
363 | 364 | ||
364 | // ------------------------------ STATICS ------------------------------ | 365 | // ------------------------------ STATICS ------------------------------ |
365 | 366 | ||
366 | function generateThumbnailFromBase64 (video, thumbnailData, callback) { | 367 | function generateThumbnailFromData (video, thumbnailData, callback) { |
367 | // Creating the thumbnail for a remote video | 368 | // Creating the thumbnail for a remote video |
368 | 369 | ||
369 | const thumbnailName = video.getThumbnailName() | 370 | const thumbnailName = video.getThumbnailName() |
370 | const thumbnailPath = constants.CONFIG.STORAGE.THUMBNAILS_DIR + thumbnailName | 371 | const thumbnailPath = constants.CONFIG.STORAGE.THUMBNAILS_DIR + thumbnailName |
371 | fs.writeFile(thumbnailPath, thumbnailData, { encoding: 'base64' }, function (err) { | 372 | fs.writeFile(thumbnailPath, Buffer.from(thumbnailData, 'binary'), function (err) { |
372 | if (err) return callback(err) | 373 | if (err) return callback(err) |
373 | 374 | ||
374 | return callback(null, thumbnailName) | 375 | return callback(null, thumbnailName) |