diff options
author | Chocobozzz <me@florianbigard.com> | 2023-07-11 09:21:13 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2023-07-11 09:21:13 +0200 |
commit | 784e2ad5c34bcfef36a3f69e9e9acd7cbb3d6428 (patch) | |
tree | 29c46cfd6344065eb805680ed080cb05592ee1d4 /server/lib/object-storage | |
parent | c3030e944ad03c7fd7b5d668a2d88ff03e4cdf19 (diff) | |
download | PeerTube-784e2ad5c34bcfef36a3f69e9e9acd7cbb3d6428.tar.gz PeerTube-784e2ad5c34bcfef36a3f69e9e9acd7cbb3d6428.tar.zst PeerTube-784e2ad5c34bcfef36a3f69e9e9acd7cbb3d6428.zip |
Prefer web videos in favour of webtorrent
Diffstat (limited to 'server/lib/object-storage')
-rw-r--r-- | server/lib/object-storage/keys.ts | 4 | ||||
-rw-r--r-- | server/lib/object-storage/pre-signed-urls.ts | 8 | ||||
-rw-r--r-- | server/lib/object-storage/proxy.ts | 8 | ||||
-rw-r--r-- | server/lib/object-storage/urls.ts | 8 | ||||
-rw-r--r-- | server/lib/object-storage/videos.ts | 34 |
5 files changed, 31 insertions, 31 deletions
diff --git a/server/lib/object-storage/keys.ts b/server/lib/object-storage/keys.ts index 4f17073f4..6d2098298 100644 --- a/server/lib/object-storage/keys.ts +++ b/server/lib/object-storage/keys.ts | |||
@@ -9,12 +9,12 @@ function generateHLSObjectBaseStorageKey (playlist: MStreamingPlaylistVideo) { | |||
9 | return join(playlist.getStringType(), playlist.Video.uuid) | 9 | return join(playlist.getStringType(), playlist.Video.uuid) |
10 | } | 10 | } |
11 | 11 | ||
12 | function generateWebTorrentObjectStorageKey (filename: string) { | 12 | function generateWebVideoObjectStorageKey (filename: string) { |
13 | return filename | 13 | return filename |
14 | } | 14 | } |
15 | 15 | ||
16 | export { | 16 | export { |
17 | generateHLSObjectStorageKey, | 17 | generateHLSObjectStorageKey, |
18 | generateHLSObjectBaseStorageKey, | 18 | generateHLSObjectBaseStorageKey, |
19 | generateWebTorrentObjectStorageKey | 19 | generateWebVideoObjectStorageKey |
20 | } | 20 | } |
diff --git a/server/lib/object-storage/pre-signed-urls.ts b/server/lib/object-storage/pre-signed-urls.ts index d8473d01e..313654a57 100644 --- a/server/lib/object-storage/pre-signed-urls.ts +++ b/server/lib/object-storage/pre-signed-urls.ts | |||
@@ -2,9 +2,9 @@ import { GetObjectCommand } from '@aws-sdk/client-s3' | |||
2 | import { getSignedUrl } from '@aws-sdk/s3-request-presigner' | 2 | import { getSignedUrl } from '@aws-sdk/s3-request-presigner' |
3 | import { CONFIG } from '@server/initializers/config' | 3 | import { CONFIG } from '@server/initializers/config' |
4 | import { MStreamingPlaylistVideo, MVideoFile } from '@server/types/models' | 4 | import { MStreamingPlaylistVideo, MVideoFile } from '@server/types/models' |
5 | import { generateHLSObjectStorageKey, generateWebTorrentObjectStorageKey } from './keys' | 5 | import { generateHLSObjectStorageKey, generateWebVideoObjectStorageKey } from './keys' |
6 | import { buildKey, getClient } from './shared' | 6 | import { buildKey, getClient } from './shared' |
7 | import { getHLSPublicFileUrl, getWebTorrentPublicFileUrl } from './urls' | 7 | import { getHLSPublicFileUrl, getWebVideoPublicFileUrl } from './urls' |
8 | 8 | ||
9 | export async function generateWebVideoPresignedUrl (options: { | 9 | export async function generateWebVideoPresignedUrl (options: { |
10 | file: MVideoFile | 10 | file: MVideoFile |
@@ -12,7 +12,7 @@ export async function generateWebVideoPresignedUrl (options: { | |||
12 | }) { | 12 | }) { |
13 | const { file, downloadFilename } = options | 13 | const { file, downloadFilename } = options |
14 | 14 | ||
15 | const key = generateWebTorrentObjectStorageKey(file.filename) | 15 | const key = generateWebVideoObjectStorageKey(file.filename) |
16 | 16 | ||
17 | const command = new GetObjectCommand({ | 17 | const command = new GetObjectCommand({ |
18 | Bucket: CONFIG.OBJECT_STORAGE.VIDEOS.BUCKET_NAME, | 18 | Bucket: CONFIG.OBJECT_STORAGE.VIDEOS.BUCKET_NAME, |
@@ -22,7 +22,7 @@ export async function generateWebVideoPresignedUrl (options: { | |||
22 | 22 | ||
23 | const url = await getSignedUrl(getClient(), command, { expiresIn: 3600 * 24 }) | 23 | const url = await getSignedUrl(getClient(), command, { expiresIn: 3600 * 24 }) |
24 | 24 | ||
25 | return getWebTorrentPublicFileUrl(url) | 25 | return getWebVideoPublicFileUrl(url) |
26 | } | 26 | } |
27 | 27 | ||
28 | export async function generateHLSFilePresignedUrl (options: { | 28 | export async function generateHLSFilePresignedUrl (options: { |
diff --git a/server/lib/object-storage/proxy.ts b/server/lib/object-storage/proxy.ts index c782a8a25..c09a0d1b0 100644 --- a/server/lib/object-storage/proxy.ts +++ b/server/lib/object-storage/proxy.ts | |||
@@ -7,19 +7,19 @@ import { StreamReplacer } from '@server/helpers/stream-replacer' | |||
7 | import { MStreamingPlaylist, MVideo } from '@server/types/models' | 7 | import { MStreamingPlaylist, MVideo } from '@server/types/models' |
8 | import { HttpStatusCode } from '@shared/models' | 8 | import { HttpStatusCode } from '@shared/models' |
9 | import { injectQueryToPlaylistUrls } from '../hls' | 9 | import { injectQueryToPlaylistUrls } from '../hls' |
10 | import { getHLSFileReadStream, getWebTorrentFileReadStream } from './videos' | 10 | import { getHLSFileReadStream, getWebVideoFileReadStream } from './videos' |
11 | 11 | ||
12 | export async function proxifyWebTorrentFile (options: { | 12 | export async function proxifyWebVideoFile (options: { |
13 | req: express.Request | 13 | req: express.Request |
14 | res: express.Response | 14 | res: express.Response |
15 | filename: string | 15 | filename: string |
16 | }) { | 16 | }) { |
17 | const { req, res, filename } = options | 17 | const { req, res, filename } = options |
18 | 18 | ||
19 | logger.debug('Proxifying WebTorrent file %s from object storage.', filename) | 19 | logger.debug('Proxifying Web Video file %s from object storage.', filename) |
20 | 20 | ||
21 | try { | 21 | try { |
22 | const { response: s3Response, stream } = await getWebTorrentFileReadStream({ | 22 | const { response: s3Response, stream } = await getWebVideoFileReadStream({ |
23 | filename, | 23 | filename, |
24 | rangeHeader: req.header('range') | 24 | rangeHeader: req.header('range') |
25 | }) | 25 | }) |
diff --git a/server/lib/object-storage/urls.ts b/server/lib/object-storage/urls.ts index b8ef94559..84bc1f6c0 100644 --- a/server/lib/object-storage/urls.ts +++ b/server/lib/object-storage/urls.ts | |||
@@ -9,7 +9,7 @@ function getInternalUrl (config: BucketInfo, keyWithoutPrefix: string) { | |||
9 | 9 | ||
10 | // --------------------------------------------------------------------------- | 10 | // --------------------------------------------------------------------------- |
11 | 11 | ||
12 | function getWebTorrentPublicFileUrl (fileUrl: string) { | 12 | function getWebVideoPublicFileUrl (fileUrl: string) { |
13 | const baseUrl = CONFIG.OBJECT_STORAGE.VIDEOS.BASE_URL | 13 | const baseUrl = CONFIG.OBJECT_STORAGE.VIDEOS.BASE_URL |
14 | if (!baseUrl) return fileUrl | 14 | if (!baseUrl) return fileUrl |
15 | 15 | ||
@@ -29,7 +29,7 @@ function getHLSPrivateFileUrl (video: MVideoUUID, filename: string) { | |||
29 | return WEBSERVER.URL + OBJECT_STORAGE_PROXY_PATHS.STREAMING_PLAYLISTS.PRIVATE_HLS + video.uuid + `/${filename}` | 29 | return WEBSERVER.URL + OBJECT_STORAGE_PROXY_PATHS.STREAMING_PLAYLISTS.PRIVATE_HLS + video.uuid + `/${filename}` |
30 | } | 30 | } |
31 | 31 | ||
32 | function getWebTorrentPrivateFileUrl (filename: string) { | 32 | function getWebVideoPrivateFileUrl (filename: string) { |
33 | return WEBSERVER.URL + OBJECT_STORAGE_PROXY_PATHS.PRIVATE_WEBSEED + filename | 33 | return WEBSERVER.URL + OBJECT_STORAGE_PROXY_PATHS.PRIVATE_WEBSEED + filename |
34 | } | 34 | } |
35 | 35 | ||
@@ -38,11 +38,11 @@ function getWebTorrentPrivateFileUrl (filename: string) { | |||
38 | export { | 38 | export { |
39 | getInternalUrl, | 39 | getInternalUrl, |
40 | 40 | ||
41 | getWebTorrentPublicFileUrl, | 41 | getWebVideoPublicFileUrl, |
42 | getHLSPublicFileUrl, | 42 | getHLSPublicFileUrl, |
43 | 43 | ||
44 | getHLSPrivateFileUrl, | 44 | getHLSPrivateFileUrl, |
45 | getWebTorrentPrivateFileUrl, | 45 | getWebVideoPrivateFileUrl, |
46 | 46 | ||
47 | replaceByBaseUrl | 47 | replaceByBaseUrl |
48 | } | 48 | } |
diff --git a/server/lib/object-storage/videos.ts b/server/lib/object-storage/videos.ts index 9152c5352..300c1f7e1 100644 --- a/server/lib/object-storage/videos.ts +++ b/server/lib/object-storage/videos.ts | |||
@@ -4,7 +4,7 @@ import { CONFIG } from '@server/initializers/config' | |||
4 | import { MStreamingPlaylistVideo, MVideo, MVideoFile } from '@server/types/models' | 4 | import { MStreamingPlaylistVideo, MVideo, MVideoFile } from '@server/types/models' |
5 | import { getHLSDirectory } from '../paths' | 5 | import { getHLSDirectory } from '../paths' |
6 | import { VideoPathManager } from '../video-path-manager' | 6 | import { VideoPathManager } from '../video-path-manager' |
7 | import { generateHLSObjectBaseStorageKey, generateHLSObjectStorageKey, generateWebTorrentObjectStorageKey } from './keys' | 7 | import { generateHLSObjectBaseStorageKey, generateHLSObjectStorageKey, generateWebVideoObjectStorageKey } from './keys' |
8 | import { | 8 | import { |
9 | createObjectReadStream, | 9 | createObjectReadStream, |
10 | listKeysOfPrefix, | 10 | listKeysOfPrefix, |
@@ -55,10 +55,10 @@ function storeHLSFileFromContent (playlist: MStreamingPlaylistVideo, path: strin | |||
55 | 55 | ||
56 | // --------------------------------------------------------------------------- | 56 | // --------------------------------------------------------------------------- |
57 | 57 | ||
58 | function storeWebTorrentFile (video: MVideo, file: MVideoFile) { | 58 | function storeWebVideoFile (video: MVideo, file: MVideoFile) { |
59 | return storeObject({ | 59 | return storeObject({ |
60 | inputPath: VideoPathManager.Instance.getFSVideoFileOutputPath(video, file), | 60 | inputPath: VideoPathManager.Instance.getFSVideoFileOutputPath(video, file), |
61 | objectStorageKey: generateWebTorrentObjectStorageKey(file.filename), | 61 | objectStorageKey: generateWebVideoObjectStorageKey(file.filename), |
62 | bucketInfo: CONFIG.OBJECT_STORAGE.VIDEOS, | 62 | bucketInfo: CONFIG.OBJECT_STORAGE.VIDEOS, |
63 | isPrivate: video.hasPrivateStaticPath() | 63 | isPrivate: video.hasPrivateStaticPath() |
64 | }) | 64 | }) |
@@ -66,9 +66,9 @@ function storeWebTorrentFile (video: MVideo, file: MVideoFile) { | |||
66 | 66 | ||
67 | // --------------------------------------------------------------------------- | 67 | // --------------------------------------------------------------------------- |
68 | 68 | ||
69 | async function updateWebTorrentFileACL (video: MVideo, file: MVideoFile) { | 69 | async function updateWebVideoFileACL (video: MVideo, file: MVideoFile) { |
70 | await updateObjectACL({ | 70 | await updateObjectACL({ |
71 | objectStorageKey: generateWebTorrentObjectStorageKey(file.filename), | 71 | objectStorageKey: generateWebVideoObjectStorageKey(file.filename), |
72 | bucketInfo: CONFIG.OBJECT_STORAGE.VIDEOS, | 72 | bucketInfo: CONFIG.OBJECT_STORAGE.VIDEOS, |
73 | isPrivate: video.hasPrivateStaticPath() | 73 | isPrivate: video.hasPrivateStaticPath() |
74 | }) | 74 | }) |
@@ -102,8 +102,8 @@ function removeHLSFileObjectStorageByFullKey (key: string) { | |||
102 | 102 | ||
103 | // --------------------------------------------------------------------------- | 103 | // --------------------------------------------------------------------------- |
104 | 104 | ||
105 | function removeWebTorrentObjectStorage (videoFile: MVideoFile) { | 105 | function removeWebVideoObjectStorage (videoFile: MVideoFile) { |
106 | return removeObject(generateWebTorrentObjectStorageKey(videoFile.filename), CONFIG.OBJECT_STORAGE.VIDEOS) | 106 | return removeObject(generateWebVideoObjectStorageKey(videoFile.filename), CONFIG.OBJECT_STORAGE.VIDEOS) |
107 | } | 107 | } |
108 | 108 | ||
109 | // --------------------------------------------------------------------------- | 109 | // --------------------------------------------------------------------------- |
@@ -122,10 +122,10 @@ async function makeHLSFileAvailable (playlist: MStreamingPlaylistVideo, filename | |||
122 | return destination | 122 | return destination |
123 | } | 123 | } |
124 | 124 | ||
125 | async function makeWebTorrentFileAvailable (filename: string, destination: string) { | 125 | async function makeWebVideoFileAvailable (filename: string, destination: string) { |
126 | const key = generateWebTorrentObjectStorageKey(filename) | 126 | const key = generateWebVideoObjectStorageKey(filename) |
127 | 127 | ||
128 | logger.info('Fetching WebTorrent file %s from object storage to %s.', key, destination, lTags()) | 128 | logger.info('Fetching Web Video file %s from object storage to %s.', key, destination, lTags()) |
129 | 129 | ||
130 | await makeAvailable({ | 130 | await makeAvailable({ |
131 | key, | 131 | key, |
@@ -138,13 +138,13 @@ async function makeWebTorrentFileAvailable (filename: string, destination: strin | |||
138 | 138 | ||
139 | // --------------------------------------------------------------------------- | 139 | // --------------------------------------------------------------------------- |
140 | 140 | ||
141 | function getWebTorrentFileReadStream (options: { | 141 | function getWebVideoFileReadStream (options: { |
142 | filename: string | 142 | filename: string |
143 | rangeHeader: string | 143 | rangeHeader: string |
144 | }) { | 144 | }) { |
145 | const { filename, rangeHeader } = options | 145 | const { filename, rangeHeader } = options |
146 | 146 | ||
147 | const key = generateWebTorrentObjectStorageKey(filename) | 147 | const key = generateWebVideoObjectStorageKey(filename) |
148 | 148 | ||
149 | return createObjectReadStream({ | 149 | return createObjectReadStream({ |
150 | key, | 150 | key, |
@@ -174,12 +174,12 @@ function getHLSFileReadStream (options: { | |||
174 | export { | 174 | export { |
175 | listHLSFileKeysOf, | 175 | listHLSFileKeysOf, |
176 | 176 | ||
177 | storeWebTorrentFile, | 177 | storeWebVideoFile, |
178 | storeHLSFileFromFilename, | 178 | storeHLSFileFromFilename, |
179 | storeHLSFileFromPath, | 179 | storeHLSFileFromPath, |
180 | storeHLSFileFromContent, | 180 | storeHLSFileFromContent, |
181 | 181 | ||
182 | updateWebTorrentFileACL, | 182 | updateWebVideoFileACL, |
183 | updateHLSFilesACL, | 183 | updateHLSFilesACL, |
184 | 184 | ||
185 | removeHLSObjectStorage, | 185 | removeHLSObjectStorage, |
@@ -187,11 +187,11 @@ export { | |||
187 | removeHLSFileObjectStorageByPath, | 187 | removeHLSFileObjectStorageByPath, |
188 | removeHLSFileObjectStorageByFullKey, | 188 | removeHLSFileObjectStorageByFullKey, |
189 | 189 | ||
190 | removeWebTorrentObjectStorage, | 190 | removeWebVideoObjectStorage, |
191 | 191 | ||
192 | makeWebTorrentFileAvailable, | 192 | makeWebVideoFileAvailable, |
193 | makeHLSFileAvailable, | 193 | makeHLSFileAvailable, |
194 | 194 | ||
195 | getWebTorrentFileReadStream, | 195 | getWebVideoFileReadStream, |
196 | getHLSFileReadStream | 196 | getHLSFileReadStream |
197 | } | 197 | } |