+3
-2
@@ -12,12 +12,13 @@ default_value = {
|
|||||||
'file_storage': 'local',
|
'file_storage': 'local',
|
||||||
'name': '文件快递柜-FileCodeBox',
|
'name': '文件快递柜-FileCodeBox',
|
||||||
'description': '开箱即用的文件快传系统',
|
'description': '开箱即用的文件快传系统',
|
||||||
'keywords': 'FileCodeBox,文件快递柜,口令传送箱,匿名口令分享文本,文件',
|
'keywords': 'FileCodeBox, 文件快递柜, 口令传送箱, 匿名口令分享文本, 文件',
|
||||||
'max_save_seconds': 0,
|
'max_save_seconds': 0,
|
||||||
's3_access_key_id': '',
|
's3_access_key_id': '',
|
||||||
's3_secret_access_key': '',
|
's3_secret_access_key': '',
|
||||||
's3_bucket_name': '',
|
's3_bucket_name': '',
|
||||||
's3_endpoint_url': '',
|
's3_endpoint_url': '',
|
||||||
|
's3_hostname': '',
|
||||||
's3_proxy': 0,
|
's3_proxy': 0,
|
||||||
'aws_session_token': '',
|
'aws_session_token': '',
|
||||||
'onedrive_domain': '',
|
'onedrive_domain': '',
|
||||||
@@ -56,6 +57,7 @@ class Settings:
|
|||||||
if not key.startswith('opendal_') and isinstance(default_value[key], int):
|
if not key.startswith('opendal_') and isinstance(default_value[key], int):
|
||||||
value = int(value)
|
value = int(value)
|
||||||
default_value[key] = value
|
default_value[key] = value
|
||||||
|
|
||||||
# 更新self
|
# 更新self
|
||||||
for key, value in default_value.items():
|
for key, value in default_value.items():
|
||||||
self.__setattr__(key, value)
|
self.__setattr__(key, value)
|
||||||
@@ -76,5 +78,4 @@ class Settings:
|
|||||||
def items(self):
|
def items(self):
|
||||||
return self.__dict__.items()
|
return self.__dict__.items()
|
||||||
|
|
||||||
|
|
||||||
settings = Settings()
|
settings = Settings()
|
||||||
+8
-5
@@ -92,13 +92,16 @@ class S3FileStorage(FileStorageInterface):
|
|||||||
self.access_key_id = settings.s3_access_key_id
|
self.access_key_id = settings.s3_access_key_id
|
||||||
self.secret_access_key = settings.s3_secret_access_key
|
self.secret_access_key = settings.s3_secret_access_key
|
||||||
self.bucket_name = settings.s3_bucket_name
|
self.bucket_name = settings.s3_bucket_name
|
||||||
self.endpoint_url = settings.s3_endpoint_url
|
self.s3_hostname = settings.s3_hostname
|
||||||
|
self.endpoint_url = settings.s3_endpoint_url or f'https://{self.s3_hostname}'
|
||||||
self.aws_session_token = settings.aws_session_token
|
self.aws_session_token = settings.aws_session_token
|
||||||
self.proxy = settings.s3_proxy
|
self.proxy = settings.s3_proxy
|
||||||
self.session = aioboto3.Session(
|
self.session = aioboto3.Session(aws_access_key_id=self.access_key_id, aws_secret_access_key=self.secret_access_key)
|
||||||
aws_access_key_id=self.access_key_id,
|
if not settings.s3_endpoint_url:
|
||||||
aws_secret_access_key=self.secret_access_key,
|
self.endpoint_url = f'https://{self.s3_hostname}'
|
||||||
)
|
else:
|
||||||
|
# 如果提供了 s3_endpoint_url,则优先使用它
|
||||||
|
self.endpoint_url = settings.s3_endpoint_url
|
||||||
|
|
||||||
async def save_file(self, file: UploadFile, save_path: str):
|
async def save_file(self, file: UploadFile, save_path: str):
|
||||||
async with self.session.client("s3", endpoint_url=self.endpoint_url, aws_session_token=self.aws_session_token) as s3:
|
async with self.session.client("s3", endpoint_url=self.endpoint_url, aws_session_token=self.aws_session_token) as s3:
|
||||||
|
|||||||
@@ -46,6 +46,9 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item size="large" label="S3 EndpointUrl">
|
<el-form-item size="large" label="S3 EndpointUrl">
|
||||||
<el-input v-model="config.s3_endpoint_url" />
|
<el-input v-model="config.s3_endpoint_url" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item size="large" label="S3 hostname">
|
||||||
|
<el-input v-model="config.s3_hostname" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item size="large" label="Aws Session Token">
|
<el-form-item size="large" label="Aws Session Token">
|
||||||
<el-input v-model="config.aws_session_token" />
|
<el-input v-model="config.aws_session_token" />
|
||||||
@@ -104,6 +107,7 @@ const config = ref({
|
|||||||
aws_session_token: '',
|
aws_session_token: '',
|
||||||
s3_bucket_name: '',
|
s3_bucket_name: '',
|
||||||
s3_endpoint_url: '',
|
s3_endpoint_url: '',
|
||||||
|
s3_hostname: '',
|
||||||
uploadCount: 1,
|
uploadCount: 1,
|
||||||
errorMinute: 1,
|
errorMinute: 1,
|
||||||
errorCount: 1,
|
errorCount: 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user