mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import { CONFIG } from '@server/initializers/config'
 | |
| import { BucketInfo, buildKey, getEndpointParsed } from './shared'
 | |
| 
 | |
| function getPrivateUrl (config: BucketInfo, keyWithoutPrefix: string) {
 | |
|   return getBaseUrl(config) + buildKey(keyWithoutPrefix, config)
 | |
| }
 | |
| 
 | |
| function getWebTorrentPublicFileUrl (fileUrl: string) {
 | |
|   const baseUrl = CONFIG.OBJECT_STORAGE.VIDEOS.BASE_URL
 | |
|   if (!baseUrl) return fileUrl
 | |
| 
 | |
|   return replaceByBaseUrl(fileUrl, baseUrl)
 | |
| }
 | |
| 
 | |
| function getHLSPublicFileUrl (fileUrl: string) {
 | |
|   const baseUrl = CONFIG.OBJECT_STORAGE.STREAMING_PLAYLISTS.BASE_URL
 | |
|   if (!baseUrl) return fileUrl
 | |
| 
 | |
|   return replaceByBaseUrl(fileUrl, baseUrl)
 | |
| }
 | |
| 
 | |
| export {
 | |
|   getPrivateUrl,
 | |
|   getWebTorrentPublicFileUrl,
 | |
|   replaceByBaseUrl,
 | |
|   getHLSPublicFileUrl
 | |
| }
 | |
| 
 | |
| // ---------------------------------------------------------------------------
 | |
| 
 | |
| function getBaseUrl (bucketInfo: BucketInfo, baseUrl?: string) {
 | |
|   if (baseUrl) return baseUrl
 | |
| 
 | |
|   return `${getEndpointParsed().protocol}//${bucketInfo.BUCKET_NAME}.${getEndpointParsed().host}/`
 | |
| }
 | |
| 
 | |
| const regex = new RegExp('https?://[^/]+')
 | |
| function replaceByBaseUrl (fileUrl: string, baseUrl: string) {
 | |
|   return fileUrl.replace(regex, baseUrl)
 | |
| }
 |