完成ali-oss文件管理

This commit is contained in:
2025-06-10 13:52:35 +08:00
parent 3211e25bd6
commit 19dc49b10d
10 changed files with 1861 additions and 1 deletions

View File

@@ -0,0 +1,26 @@
import { useOssSts } from "@/hooks/oss/use-oss-sts";
import OSS from "ali-oss";
export function useOssStore() {
const { stsTokenData, isLoading, error } = useOssSts();
return {
stsTokenData,
isLoading,
error,
store: stsTokenData ? new OSS({
region: 'oss-cn-chengdu',
bucket: 'tone-personal',
accessKeyId: stsTokenData.AccessKeyId,
accessKeySecret: stsTokenData.AccessKeySecret,
stsToken: stsTokenData.SecurityToken,
refreshSTSToken: () => new Promise(resolve => {
resolve({
accessKeyId: stsTokenData.AccessKeyId,
accessKeySecret: stsTokenData.AccessKeySecret,
stsToken: stsTokenData.SecurityToken,
})
}),
}) : undefined,
}
}

View File

@@ -0,0 +1,20 @@
import { OssApi } from "@/lib/api";
import useSWR from "swr";
export function useOssSts() {
const { data: stsTokenData, isLoading, error } = useSWR(
'/api/oss/sts',
() => OssApi.getStsToken(),
{
shouldRetryOnError: false,
refreshInterval: 59 * 60 * 1000,
revalidateOnFocus: false,
}
);
return {
stsTokenData,
isLoading,
error,
}
}