feat: add Cloudflare R2 support with detailed backup recommendations and localization updates

This commit is contained in:
shuaiplus
2026-06-25 19:45:09 +08:00
parent 1acc31eda0
commit c3dc53bac1
9 changed files with 133 additions and 9 deletions
+17 -2
View File
@@ -4,7 +4,7 @@ export interface RecommendedStorageLink {
}
export interface RecommendedProviderBase {
id: 'infinicloud' | 'koofr' | 'pcloud' | 'backblaze-b2';
id: 'infinicloud' | 'koofr' | 'pcloud' | 'backblaze-b2' | 'cloudflare-r2';
name: string;
capacity: string;
protocol: 'webdav' | 's3';
@@ -34,7 +34,13 @@ export interface BackblazeB2Provider extends RecommendedProviderBase {
applicationKeysUrl: string;
}
export type RecommendedProvider = InfinicloudProvider | KoofrProvider | PcloudProvider | BackblazeB2Provider;
export interface CloudflareR2Provider extends RecommendedProviderBase {
id: 'cloudflare-r2';
bucketUrl: string;
apiTokenUrl: string;
}
export type RecommendedProvider = InfinicloudProvider | KoofrProvider | PcloudProvider | BackblazeB2Provider | CloudflareR2Provider;
export const RECOMMENDED_PROVIDERS: RecommendedProvider[] = [
{
@@ -76,6 +82,15 @@ export const RECOMMENDED_PROVIDERS: RecommendedProvider[] = [
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',
},
];
export function hasLinkedStorages(provider: RecommendedProvider): provider is KoofrProvider {