mirror of https://github.com/Chocobozzz/PeerTube
				
				
				
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
| 
 | |
| import { HttpStatusCode } from '@shared/models'
 | |
| import { makePostBodyRequest } from '../requests'
 | |
| import { AbstractCommand } from '../shared'
 | |
| 
 | |
| export class ObjectStorageCommand extends AbstractCommand {
 | |
|   static readonly DEFAULT_PLAYLIST_BUCKET = 'streaming-playlists'
 | |
|   static readonly DEFAULT_WEBTORRENT_BUCKET = 'videos'
 | |
| 
 | |
|   static getDefaultConfig () {
 | |
|     return {
 | |
|       object_storage: {
 | |
|         enabled: true,
 | |
|         endpoint: 'http://' + this.getEndpointHost(),
 | |
|         region: this.getRegion(),
 | |
| 
 | |
|         credentials: this.getCredentialsConfig(),
 | |
| 
 | |
|         streaming_playlists: {
 | |
|           bucket_name: this.DEFAULT_PLAYLIST_BUCKET
 | |
|         },
 | |
| 
 | |
|         videos: {
 | |
|           bucket_name: this.DEFAULT_WEBTORRENT_BUCKET
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   static getCredentialsConfig () {
 | |
|     return {
 | |
|       access_key_id: 'AKIAIOSFODNN7EXAMPLE',
 | |
|       secret_access_key: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   static getEndpointHost () {
 | |
|     return 'localhost:9444'
 | |
|   }
 | |
| 
 | |
|   static getRegion () {
 | |
|     return 'us-east-1'
 | |
|   }
 | |
| 
 | |
|   static getWebTorrentBaseUrl () {
 | |
|     return `http://${this.DEFAULT_WEBTORRENT_BUCKET}.${this.getEndpointHost()}/`
 | |
|   }
 | |
| 
 | |
|   static getPlaylistBaseUrl () {
 | |
|     return `http://${this.DEFAULT_PLAYLIST_BUCKET}.${this.getEndpointHost()}/`
 | |
|   }
 | |
| 
 | |
|   static async prepareDefaultBuckets () {
 | |
|     await this.createBucket(this.DEFAULT_PLAYLIST_BUCKET)
 | |
|     await this.createBucket(this.DEFAULT_WEBTORRENT_BUCKET)
 | |
|   }
 | |
| 
 | |
|   static async createBucket (name: string) {
 | |
|     await makePostBodyRequest({
 | |
|       url: this.getEndpointHost(),
 | |
|       path: '/ui/' + name + '?delete',
 | |
|       expectedStatus: HttpStatusCode.TEMPORARY_REDIRECT_307
 | |
|     })
 | |
| 
 | |
|     await makePostBodyRequest({
 | |
|       url: this.getEndpointHost(),
 | |
|       path: '/ui/' + name + '?create',
 | |
|       expectedStatus: HttpStatusCode.TEMPORARY_REDIRECT_307
 | |
|     })
 | |
| 
 | |
|     await makePostBodyRequest({
 | |
|       url: this.getEndpointHost(),
 | |
|       path: '/ui/' + name + '?make-public',
 | |
|       expectedStatus: HttpStatusCode.TEMPORARY_REDIRECT_307
 | |
|     })
 | |
|   }
 | |
| }
 |