feat: support aliyun oss auth v4 (#3886)
Co-authored-by: owen <owen@owen.hawk-toad.ts.net>
This commit is contained in:
parent
13292ff73e
commit
13cd409575
@ -54,6 +54,9 @@ ALIYUN_OSS_BUCKET_NAME=your-bucket-name
|
|||||||
ALIYUN_OSS_ACCESS_KEY=your-access-key
|
ALIYUN_OSS_ACCESS_KEY=your-access-key
|
||||||
ALIYUN_OSS_SECRET_KEY=your-secret-key
|
ALIYUN_OSS_SECRET_KEY=your-secret-key
|
||||||
ALIYUN_OSS_ENDPOINT=your-endpoint
|
ALIYUN_OSS_ENDPOINT=your-endpoint
|
||||||
|
ALIYUN_OSS_AUTH_VERSION=v1
|
||||||
|
ALIYUN_OSS_REGION=your-region
|
||||||
|
|
||||||
# Google Storage configuration
|
# Google Storage configuration
|
||||||
GOOGLE_STORAGE_BUCKET_NAME=yout-bucket-name
|
GOOGLE_STORAGE_BUCKET_NAME=yout-bucket-name
|
||||||
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON=your-google-service-account-json-base64-string
|
GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON=your-google-service-account-json-base64-string
|
||||||
|
@ -215,6 +215,8 @@ class Config:
|
|||||||
self.ALIYUN_OSS_ACCESS_KEY=get_env('ALIYUN_OSS_ACCESS_KEY')
|
self.ALIYUN_OSS_ACCESS_KEY=get_env('ALIYUN_OSS_ACCESS_KEY')
|
||||||
self.ALIYUN_OSS_SECRET_KEY=get_env('ALIYUN_OSS_SECRET_KEY')
|
self.ALIYUN_OSS_SECRET_KEY=get_env('ALIYUN_OSS_SECRET_KEY')
|
||||||
self.ALIYUN_OSS_ENDPOINT=get_env('ALIYUN_OSS_ENDPOINT')
|
self.ALIYUN_OSS_ENDPOINT=get_env('ALIYUN_OSS_ENDPOINT')
|
||||||
|
self.ALIYUN_OSS_REGION=get_env('ALIYUN_OSS_REGION')
|
||||||
|
self.ALIYUN_OSS_AUTH_VERSION=get_env('ALIYUN_OSS_AUTH_VERSION')
|
||||||
self.GOOGLE_STORAGE_BUCKET_NAME = get_env('GOOGLE_STORAGE_BUCKET_NAME')
|
self.GOOGLE_STORAGE_BUCKET_NAME = get_env('GOOGLE_STORAGE_BUCKET_NAME')
|
||||||
self.GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64 = get_env('GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64')
|
self.GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64 = get_env('GOOGLE_STORAGE_SERVICE_ACCOUNT_JSON_BASE64')
|
||||||
|
|
||||||
|
@ -13,13 +13,21 @@ class AliyunStorage(BaseStorage):
|
|||||||
|
|
||||||
def __init__(self, app: Flask):
|
def __init__(self, app: Flask):
|
||||||
super().__init__(app)
|
super().__init__(app)
|
||||||
|
|
||||||
app_config = self.app.config
|
app_config = self.app.config
|
||||||
self.bucket_name = app_config.get('ALIYUN_OSS_BUCKET_NAME')
|
self.bucket_name = app_config.get('ALIYUN_OSS_BUCKET_NAME')
|
||||||
|
oss_auth_method = aliyun_s3.Auth
|
||||||
|
region = None
|
||||||
|
if app_config.get('ALIYUN_OSS_AUTH_VERSION') == 'v4':
|
||||||
|
oss_auth_method = aliyun_s3.AuthV4
|
||||||
|
region = app_config.get('ALIYUN_OSS_REGION')
|
||||||
|
oss_auth = oss_auth_method(app_config.get('ALIYUN_OSS_ACCESS_KEY'), app_config.get('ALIYUN_OSS_SECRET_KEY'))
|
||||||
self.client = aliyun_s3.Bucket(
|
self.client = aliyun_s3.Bucket(
|
||||||
aliyun_s3.Auth(app_config.get('ALIYUN_OSS_ACCESS_KEY'), app_config.get('ALIYUN_OSS_SECRET_KEY')),
|
oss_auth,
|
||||||
app_config.get('ALIYUN_OSS_ENDPOINT'),
|
app_config.get('ALIYUN_OSS_ENDPOINT'),
|
||||||
self.bucket_name,
|
self.bucket_name,
|
||||||
connect_timeout=30
|
connect_timeout=30,
|
||||||
|
region=region,
|
||||||
)
|
)
|
||||||
|
|
||||||
def save(self, filename, data):
|
def save(self, filename, data):
|
||||||
|
Loading…
Reference in New Issue
Block a user