mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-24 08:20:31 +08:00
feat(storage): add support for min.io storage (#1037)
* feat(storage): add support for min.io storage * fix(minio): use doublequote * fix(storage): change storage name to MinIO
This commit is contained in:
parent
80c0940e30
commit
7d979cbaf0
36
storage/minio_s3.go
Normal file
36
storage/minio_s3.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
// Copyright 2021 The Casdoor Authors. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
package storage
|
||||||
|
|
||||||
|
import (
|
||||||
|
awss3 "github.com/aws/aws-sdk-go/service/s3"
|
||||||
|
"github.com/casdoor/oss"
|
||||||
|
"github.com/casdoor/oss/s3"
|
||||||
|
)
|
||||||
|
|
||||||
|
func NewMinIOS3StorageProvider(clientId string, clientSecret string, region string, bucket string, endpoint string) oss.StorageInterface {
|
||||||
|
sp := s3.New(&s3.Config{
|
||||||
|
AccessID: clientId,
|
||||||
|
AccessKey: clientSecret,
|
||||||
|
Region: region,
|
||||||
|
Bucket: bucket,
|
||||||
|
Endpoint: endpoint,
|
||||||
|
S3Endpoint: endpoint,
|
||||||
|
ACL: awss3.BucketCannedACLPublicRead,
|
||||||
|
S3ForcePathStyle: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
return sp
|
||||||
|
}
|
@ -22,6 +22,8 @@ func GetStorageProvider(providerType string, clientId string, clientSecret strin
|
|||||||
return NewLocalFileSystemStorageProvider(clientId, clientSecret, region, bucket, endpoint)
|
return NewLocalFileSystemStorageProvider(clientId, clientSecret, region, bucket, endpoint)
|
||||||
case "AWS S3":
|
case "AWS S3":
|
||||||
return NewAwsS3StorageProvider(clientId, clientSecret, region, bucket, endpoint)
|
return NewAwsS3StorageProvider(clientId, clientSecret, region, bucket, endpoint)
|
||||||
|
case "MinIO":
|
||||||
|
return NewMinIOS3StorageProvider(clientId, clientSecret, region, bucket, endpoint)
|
||||||
case "Aliyun OSS":
|
case "Aliyun OSS":
|
||||||
return NewAliyunOssStorageProvider(clientId, clientSecret, region, bucket, endpoint)
|
return NewAliyunOssStorageProvider(clientId, clientSecret, region, bucket, endpoint)
|
||||||
case "Tencent Cloud COS":
|
case "Tencent Cloud COS":
|
||||||
|
@ -474,7 +474,7 @@ class ProviderEditPage extends React.Component {
|
|||||||
}} />
|
}} />
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
{this.state.provider.type === "AWS S3" || this.state.provider.type === "Tencent Cloud COS" ? (
|
{["AWS S3", "MinIO", "Tencent Cloud COS"].includes(this.state.provider.type) ? (
|
||||||
<Row style={{marginTop: "20px"}} >
|
<Row style={{marginTop: "20px"}} >
|
||||||
<Col style={{marginTop: "5px"}} span={2}>
|
<Col style={{marginTop: "5px"}} span={2}>
|
||||||
{Setting.getLabel(i18next.t("provider:Region ID"), i18next.t("provider:Region ID - Tooltip"))} :
|
{Setting.getLabel(i18next.t("provider:Region ID"), i18next.t("provider:Region ID - Tooltip"))} :
|
||||||
|
@ -69,6 +69,10 @@ export const OtherProviderInfo = {
|
|||||||
logo: `${StaticBaseUrl}/img/social_aws.png`,
|
logo: `${StaticBaseUrl}/img/social_aws.png`,
|
||||||
url: "https://aws.amazon.com/s3",
|
url: "https://aws.amazon.com/s3",
|
||||||
},
|
},
|
||||||
|
"MinIO": {
|
||||||
|
logo: "https://min.io/resources/img/logo.svg",
|
||||||
|
url: "https://min.io/",
|
||||||
|
},
|
||||||
"Aliyun OSS": {
|
"Aliyun OSS": {
|
||||||
logo: `${StaticBaseUrl}/img/social_aliyun.png`,
|
logo: `${StaticBaseUrl}/img/social_aliyun.png`,
|
||||||
url: "https://aliyun.com/product/oss",
|
url: "https://aliyun.com/product/oss",
|
||||||
@ -612,6 +616,7 @@ export function getProviderTypeOptions(category) {
|
|||||||
[
|
[
|
||||||
{id: "Local File System", name: "Local File System"},
|
{id: "Local File System", name: "Local File System"},
|
||||||
{id: "AWS S3", name: "AWS S3"},
|
{id: "AWS S3", name: "AWS S3"},
|
||||||
|
{id: "MinIO", name: "MinIO"},
|
||||||
{id: "Aliyun OSS", name: "Aliyun OSS"},
|
{id: "Aliyun OSS", name: "Aliyun OSS"},
|
||||||
{id: "Tencent Cloud COS", name: "Tencent Cloud COS"},
|
{id: "Tencent Cloud COS", name: "Tencent Cloud COS"},
|
||||||
{id: "Azure Blob", name: "Azure Blob"},
|
{id: "Azure Blob", name: "Azure Blob"},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user