完成ali-oss文件管理
This commit is contained in:
26
tone-page-web/hooks/admin/web/blog/use-oss-store.ts
Normal file
26
tone-page-web/hooks/admin/web/blog/use-oss-store.ts
Normal 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,
|
||||
}
|
||||
}
|
||||
20
tone-page-web/hooks/oss/use-oss-sts.ts
Normal file
20
tone-page-web/hooks/oss/use-oss-sts.ts
Normal 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,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user