storj.io/minio@v0.0.0-20230509071714-0cbc90f649b1/cmd/gateway-interface.go (about) 1 /* 2 * MinIO Cloud Storage, (C) 2017 MinIO, Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package cmd 18 19 import ( 20 "storj.io/minio/pkg/auth" 21 ) 22 23 // GatewayMinioSysTmp prefix is used in Azure/GCS gateway for save metadata sent by Initialize Multipart Upload API. 24 const ( 25 GatewayMinioSysTmp = "minio.sys.tmp/" 26 AzureBackendGateway = "azure" 27 GCSBackendGateway = "gcs" 28 HDFSBackendGateway = "hdfs" 29 NASBackendGateway = "nas" 30 S3BackendGateway = "s3" 31 ) 32 33 // Gateway represents a gateway backend. 34 type Gateway interface { 35 // Name returns the unique name of the gateway. 36 Name() string 37 38 // NewGatewayLayer returns a new ObjectLayer. 39 NewGatewayLayer(creds auth.Credentials) (ObjectLayer, error) 40 41 // Returns true if gateway is ready for production. 42 Production() bool 43 }