]>
Commit | Line | Data |
---|---|---|
0305db28 JB |
1 | |
2 | import { HttpStatusCode } from '@shared/models' | |
3 | import { makePostBodyRequest } from '../requests' | |
4 | import { AbstractCommand } from '../shared' | |
5 | ||
6 | export class ObjectStorageCommand extends AbstractCommand { | |
7 | static readonly DEFAULT_PLAYLIST_BUCKET = 'streaming-playlists' | |
8 | static readonly DEFAULT_WEBTORRENT_BUCKET = 'videos' | |
9 | ||
10 | static getDefaultConfig () { | |
11 | return { | |
12 | object_storage: { | |
13 | enabled: true, | |
14 | endpoint: 'http://' + this.getEndpointHost(), | |
15 | region: this.getRegion(), | |
16 | ||
17 | credentials: this.getCredentialsConfig(), | |
18 | ||
19 | streaming_playlists: { | |
20 | bucket_name: this.DEFAULT_PLAYLIST_BUCKET | |
21 | }, | |
22 | ||
23 | videos: { | |
24 | bucket_name: this.DEFAULT_WEBTORRENT_BUCKET | |
25 | } | |
26 | } | |
27 | } | |
28 | } | |
29 | ||
30 | static getCredentialsConfig () { | |
31 | return { | |
32 | access_key_id: 'AKIAIOSFODNN7EXAMPLE', | |
33 | secret_access_key: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY' | |
34 | } | |
35 | } | |
36 | ||
37 | static getEndpointHost () { | |
38 | return 'localhost:9444' | |
39 | } | |
40 | ||
41 | static getRegion () { | |
42 | return 'us-east-1' | |
43 | } | |
44 | ||
45 | static getWebTorrentBaseUrl () { | |
46 | return `http://${this.DEFAULT_WEBTORRENT_BUCKET}.${this.getEndpointHost()}/` | |
47 | } | |
48 | ||
49 | static getPlaylistBaseUrl () { | |
50 | return `http://${this.DEFAULT_PLAYLIST_BUCKET}.${this.getEndpointHost()}/` | |
51 | } | |
52 | ||
53 | static async prepareDefaultBuckets () { | |
54 | await this.createBucket(this.DEFAULT_PLAYLIST_BUCKET) | |
55 | await this.createBucket(this.DEFAULT_WEBTORRENT_BUCKET) | |
56 | } | |
57 | ||
58 | static async createBucket (name: string) { | |
59 | await makePostBodyRequest({ | |
60 | url: this.getEndpointHost(), | |
61 | path: '/ui/' + name + '?delete', | |
62 | expectedStatus: HttpStatusCode.TEMPORARY_REDIRECT_307 | |
63 | }) | |
64 | ||
65 | await makePostBodyRequest({ | |
66 | url: this.getEndpointHost(), | |
67 | path: '/ui/' + name + '?create', | |
68 | expectedStatus: HttpStatusCode.TEMPORARY_REDIRECT_307 | |
69 | }) | |
70 | ||
71 | await makePostBodyRequest({ | |
72 | url: this.getEndpointHost(), | |
73 | path: '/ui/' + name + '?make-public', | |
74 | expectedStatus: HttpStatusCode.TEMPORARY_REDIRECT_307 | |
75 | }) | |
76 | } | |
77 | } |