mirror of
https://github.com/shuaiplus/nodewarden.git
synced 2026-08-06 23:20:12 +00:00
114 lines
3.1 KiB
TypeScript
114 lines
3.1 KiB
TypeScript
export interface RecommendedStorageLink {
|
|
name: string;
|
|
capacity: string;
|
|
}
|
|
|
|
export interface RecommendedProviderBase {
|
|
id: 'infinicloud' | 'koofr' | 'pcloud' | 'backblaze-b2' | 'cloudflare-r2' | 'tigris';
|
|
name: string;
|
|
capacity: string;
|
|
protocol: 'webdav' | 's3';
|
|
signupUrl: string;
|
|
hasAffiliateLink?: boolean;
|
|
}
|
|
|
|
export interface InfinicloudProvider extends RecommendedProviderBase {
|
|
id: 'infinicloud';
|
|
referralCode: string;
|
|
}
|
|
|
|
export interface KoofrProvider extends RecommendedProviderBase {
|
|
id: 'koofr';
|
|
passwordUrl: string;
|
|
storageUrl: string;
|
|
linkedStorages: RecommendedStorageLink[];
|
|
}
|
|
|
|
export interface PcloudProvider extends RecommendedProviderBase {
|
|
id: 'pcloud';
|
|
}
|
|
|
|
export interface BackblazeB2Provider extends RecommendedProviderBase {
|
|
id: 'backblaze-b2';
|
|
bucketsUrl: string;
|
|
applicationKeysUrl: string;
|
|
}
|
|
|
|
export interface CloudflareR2Provider extends RecommendedProviderBase {
|
|
id: 'cloudflare-r2';
|
|
bucketUrl: string;
|
|
apiTokenUrl: string;
|
|
}
|
|
|
|
export interface TigrisProvider extends RecommendedProviderBase {
|
|
id: 'tigris';
|
|
bucketUrl: string;
|
|
accessKeyUrl: string;
|
|
}
|
|
|
|
export type RecommendedProvider = InfinicloudProvider | KoofrProvider | PcloudProvider | BackblazeB2Provider | CloudflareR2Provider | TigrisProvider;
|
|
|
|
export const RECOMMENDED_PROVIDERS: RecommendedProvider[] = [
|
|
{
|
|
id: 'infinicloud',
|
|
name: 'InfiniCLOUD',
|
|
capacity: '25G',
|
|
protocol: 'webdav',
|
|
signupUrl: 'https://infini-cloud.net/en/',
|
|
referralCode: '2HC5E',
|
|
},
|
|
{
|
|
id: 'koofr',
|
|
name: 'Koofr',
|
|
capacity: '10G',
|
|
protocol: 'webdav',
|
|
signupUrl: 'https://app.koofr.net/signup',
|
|
passwordUrl: 'https://app.koofr.net/app/admin/preferences/password',
|
|
storageUrl: 'https://app.koofr.net/app/storage/',
|
|
linkedStorages: [
|
|
{ name: 'Google Drive', capacity: '15G' },
|
|
{ name: 'OneDrive', capacity: '5G' },
|
|
{ name: 'Dropbox', capacity: '2G' },
|
|
],
|
|
},
|
|
{
|
|
id: 'pcloud',
|
|
name: 'pCloud',
|
|
capacity: '10G',
|
|
protocol: 'webdav',
|
|
signupUrl: 'https://u.pcloud.com/#/register?invite=GITx7ZvEU1N7',
|
|
hasAffiliateLink: true,
|
|
},
|
|
{
|
|
id: 'backblaze-b2',
|
|
name: 'Backblaze B2',
|
|
capacity: '10G',
|
|
protocol: 's3',
|
|
signupUrl: 'https://secure.backblaze.com/user_signin.htm',
|
|
bucketsUrl: 'https://secure.backblaze.com/b2_buckets.htm',
|
|
applicationKeysUrl: 'https://secure.backblaze.com/app_keys.htm',
|
|
},
|
|
{
|
|
id: 'cloudflare-r2',
|
|
name: 'Cloudflare R2',
|
|
capacity: '10G',
|
|
protocol: 's3',
|
|
signupUrl: 'https://dash.cloudflare.com/?to=/:account/r2/new',
|
|
bucketUrl: 'https://dash.cloudflare.com/?to=/:account/r2/new',
|
|
apiTokenUrl: 'https://dash.cloudflare.com/?to=/:account/r2/api-tokens/create?type=user',
|
|
},
|
|
{
|
|
id: 'tigris',
|
|
name: 'Tigris',
|
|
capacity: '5G',
|
|
protocol: 's3',
|
|
signupUrl: 'https://console.storage.dev/signup',
|
|
bucketUrl: 'https://console.storage.dev/createbucket',
|
|
accessKeyUrl: 'https://console.storage.dev/createaccesskey',
|
|
},
|
|
];
|
|
|
|
export function hasLinkedStorages(provider: RecommendedProvider): provider is KoofrProvider {
|
|
return provider.id === 'koofr';
|
|
}
|