UNPKG

minio

Version:

S3 Compatible Cloud Storage client

71 lines (65 loc) 2.82 kB
/* * MinIO Javascript Library for Amazon S3 Compatible Cloud Storage, (C) 2015, 2016 MinIO, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { isString } from './helper.ts' // List of currently supported endpoints. const awsS3Endpoint = { 'af-south-1': 's3.af-south-1.amazonaws.com', 'ap-east-1': 's3.ap-east-1.amazonaws.com', 'ap-south-1': 's3.ap-south-1.amazonaws.com', 'ap-south-2': 's3.ap-south-2.amazonaws.com', 'ap-southeast-1': 's3.ap-southeast-1.amazonaws.com', 'ap-southeast-2': 's3.ap-southeast-2.amazonaws.com', 'ap-southeast-3': 's3.ap-southeast-3.amazonaws.com', 'ap-southeast-4': 's3.ap-southeast-4.amazonaws.com', 'ap-southeast-5': 's3.ap-southeast-5.amazonaws.com', 'ap-northeast-1': 's3.ap-northeast-1.amazonaws.com', 'ap-northeast-2': 's3.ap-northeast-2.amazonaws.com', 'ap-northeast-3': 's3.ap-northeast-3.amazonaws.com', 'ca-central-1': 's3.ca-central-1.amazonaws.com', 'ca-west-1': 's3.ca-west-1.amazonaws.com', 'cn-north-1': 's3.cn-north-1.amazonaws.com.cn', 'eu-central-1': 's3.eu-central-1.amazonaws.com', 'eu-central-2': 's3.eu-central-2.amazonaws.com', 'eu-north-1': 's3.eu-north-1.amazonaws.com', 'eu-south-1': 's3.eu-south-1.amazonaws.com', 'eu-south-2': 's3.eu-south-2.amazonaws.com', 'eu-west-1': 's3.eu-west-1.amazonaws.com', 'eu-west-2': 's3.eu-west-2.amazonaws.com', 'eu-west-3': 's3.eu-west-3.amazonaws.com', 'il-central-1': 's3.il-central-1.amazonaws.com', 'me-central-1': 's3.me-central-1.amazonaws.com', 'me-south-1': 's3.me-south-1.amazonaws.com', 'sa-east-1': 's3.sa-east-1.amazonaws.com', 'us-east-1': 's3.us-east-1.amazonaws.com', 'us-east-2': 's3.us-east-2.amazonaws.com', 'us-west-1': 's3.us-west-1.amazonaws.com', 'us-west-2': 's3.us-west-2.amazonaws.com', 'us-gov-east-1': 's3.us-gov-east-1.amazonaws.com', 'us-gov-west-1': 's3.us-gov-west-1.amazonaws.com', // Add new endpoints here. } export type Region = keyof typeof awsS3Endpoint | string // getS3Endpoint get relevant endpoint for the region. export function getS3Endpoint(region: Region): string { if (!isString(region)) { throw new TypeError(`Invalid region: ${region}`) } const endpoint = (awsS3Endpoint as Record<string, string>)[region] if (endpoint) { return endpoint } return 's3.amazonaws.com' }