added env support to video thumbnails, fixed thumbnail script, and added example env
This commit is contained in:
@@ -1 +1,23 @@
|
||||
// TODO: Add example env file
|
||||
MONGODB_URL=
|
||||
DB_TYPE=
|
||||
HTTP_PORT=
|
||||
HTTPS_PORT=
|
||||
PASSWORD_ACCESS=
|
||||
PASSWORD_REFRESH=
|
||||
PASSWORD_COOKIE=
|
||||
_SECURE_COOKIES=
|
||||
FS_DIRECTORY=
|
||||
KEY=
|
||||
EMAIL_VERIFICATION=
|
||||
EMAIL_DOMAIN=
|
||||
EMAIL_ADDRESS=
|
||||
EMAIL_API_KEY=
|
||||
EMAIL_HOST=
|
||||
REMOTE_URL=
|
||||
S3_ID=
|
||||
S3_KEY=
|
||||
S3_BUCKET=
|
||||
URL=
|
||||
TEMP_DIRECTORY=
|
||||
VIDEO_THUMBNAILS_ENABLED=
|
||||
TEMP_VIDEO_THUMBNAIL_LIMIT=
|
||||
@@ -26,6 +26,10 @@ export default {
|
||||
emailHost: process.env.EMAIL_HOST,
|
||||
emailPort: process.env.EMAIL_PORT,
|
||||
emailAddress: process.env.EMAIL_ADDRESS,
|
||||
videoThumbnailsEnabled: process.env.VIDEO_THUMBNAILS_ENABLED === "true",
|
||||
tempVideoThumbnailLimit: process.env.TEMP_VIDEO_THUMBNAIL_LIMIT
|
||||
? +process.env.TEMP_VIDEO_THUMBNAIL_LIMIT
|
||||
: 0,
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
@@ -56,4 +60,8 @@ module.exports = {
|
||||
emailHost: process.env.EMAIL_HOST,
|
||||
emailPort: process.env.EMAIL_PORT,
|
||||
emailAddress: process.env.EMAIL_ADDRESS,
|
||||
videoThumbnailsEnabled: process.env.VIDEO_THUMBNAILS_ENABLED === "true",
|
||||
tempVideoThumbnailLimit: process.env.TEMP_VIDEO_THUMBNAIL_LIMIT
|
||||
? +process.env.TEMP_VIDEO_THUMBNAIL_LIMIT
|
||||
: 0,
|
||||
};
|
||||
|
||||
@@ -163,7 +163,7 @@ const createVideoThumbnail = (
|
||||
|
||||
await attemptToRemoveChunks(file, thumbnailFilename);
|
||||
|
||||
if (env.tempDirectory) {
|
||||
if (env.tempDirectory && env.tempVideoThumbnailLimit > file.length) {
|
||||
const updatedFile = await tempCreateVideoThumbnail(
|
||||
file,
|
||||
filename,
|
||||
|
||||
@@ -53,19 +53,23 @@ const processData = (
|
||||
length = metadata.size;
|
||||
}
|
||||
|
||||
const videoCheck = videoChecker(filename);
|
||||
|
||||
const currentFile = new File({
|
||||
filename,
|
||||
uploadDate: date.toISOString(),
|
||||
length,
|
||||
metadata,
|
||||
metadata: {
|
||||
...metadata,
|
||||
isVideo: videoCheck,
|
||||
},
|
||||
});
|
||||
|
||||
await currentFile.save();
|
||||
|
||||
const imageCheck = imageChecker(currentFile.filename);
|
||||
const videoCheck = videoChecker(currentFile.filename);
|
||||
|
||||
if (videoCheck) {
|
||||
if (videoCheck && env.videoThumbnailsEnabled) {
|
||||
const updatedFile = await createVideoThumbnail(
|
||||
currentFile,
|
||||
filename,
|
||||
|
||||
+3
-1
@@ -13,7 +13,9 @@
|
||||
"build:backend": "tsc -p ./backend/tsconfig.json",
|
||||
"build": "npm run build:frontend && npm run build:backend",
|
||||
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
|
||||
"start": "NODE_ENV=production node dist-backend/server/server-start.js"
|
||||
"start": "NODE_ENV=production node dist-backend/server/server-start.js",
|
||||
"create-video-thumbnails": "NODE_ENV=production node serverUtils/createVideoThumbnails.js",
|
||||
"create-video-thumbnails:dev": "NODE_ENV=development node serverUtils/createVideoThumbnails.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.8.4",
|
||||
|
||||
Vendored
BIN
Binary file not shown.
@@ -1,13 +1,12 @@
|
||||
const getEnvVariables = require("../dist/enviroment/get-env-variables");
|
||||
const getEnvVariables = require("../dist-backend/enviroment/get-env-variables");
|
||||
getEnvVariables();
|
||||
const mongoose = require("./mongoServerUtil");
|
||||
const conn = mongoose.connection;
|
||||
const File = require("../dist/models/file-model");
|
||||
const User = require("../dist/models/user-model");
|
||||
const crypto = require("crypto");
|
||||
const File = require("../dist-backend/models/file-model");
|
||||
const User = require("../dist-backend/models/user-model");
|
||||
const createVideoThumbnail =
|
||||
require("../dist/services/chunk-service/utils/createVideoThumbnail").default;
|
||||
const getKey = require("../dist/key/get-key").default;
|
||||
require("../dist-backend/services/chunk-service/utils/createVideoThumbnail").default;
|
||||
const getKey = require("../dist-backend/key/get-key").default;
|
||||
|
||||
const waitForDatabase = () => {
|
||||
return new Promise((resolve, reject) => {
|
||||
@@ -22,6 +21,8 @@ const waitForDatabase = () => {
|
||||
};
|
||||
|
||||
const updateDocs = async () => {
|
||||
console.log(`Updating video thumbnails, env is ${process.env.NODE_ENV}`);
|
||||
|
||||
console.log("\nWaiting for database...");
|
||||
await waitForDatabase();
|
||||
console.log("Connected to database\n");
|
||||
@@ -44,13 +45,17 @@ const updateDocs = async () => {
|
||||
console.log("Found", files.length, "files");
|
||||
|
||||
for (let i = 0; i < files.length; i++) {
|
||||
const currentFile = files[i];
|
||||
try {
|
||||
const currentFile = files[i];
|
||||
|
||||
console.log("current file", currentFile._id);
|
||||
console.log("current file", currentFile._id);
|
||||
|
||||
const user = await User.findById(currentFile.metadata.owner);
|
||||
const user = await User.findById(currentFile.metadata.owner);
|
||||
|
||||
await createVideoThumbnail(currentFile, currentFile.filename, user);
|
||||
await createVideoThumbnail(currentFile, currentFile.filename, user);
|
||||
} catch (e) {
|
||||
console.log("error creating video thumbnail", e);
|
||||
}
|
||||
}
|
||||
|
||||
console.log("Done");
|
||||
|
||||
Reference in New Issue
Block a user