fix(storage): 延长七牛私有读链接有效期

This commit is contained in:
WuYongJie 2026-06-16 16:12:55 +08:00
parent 18dc1aa8ed
commit 7b94f30108
3 changed files with 37 additions and 29 deletions

View File

@ -79,7 +79,7 @@ export const config = {
filePath: process.env.QINIU_FILE_PATH,
useHttps: process.env.QINIU_USE_HTTPS !== 'false',
privateBucket: process.env.QINIU_PRIVATE_BUCKET === 'true',
privateUrlExpiresSeconds: Number(process.env.QINIU_PRIVATE_URL_EXPIRES_SECONDS || 3600),
privateUrlExpiresSeconds: Number(process.env.QINIU_PRIVATE_URL_EXPIRES_SECONDS || 7200),
},
auth: {
secret: process.env.NEXTAUTH_SECRET,

View File

@ -262,6 +262,9 @@ describe('storage object provider', () => {
data: {},
})
const nowSpy = jest.spyOn(Date, 'now').mockReturnValue(1_700_000_000_000)
try {
const storage = await import('./storage')
const buffer = Buffer.from('private-glb')
@ -276,9 +279,11 @@ describe('storage object provider', () => {
)
expect(storage.getStorageAccessMode()).toBe('private')
expect(storage.createObjectReadUrl('models/table.glb')).toContain(
const signedReadUrl = storage.createObjectReadUrl('models/table.glb')
expect(signedReadUrl).toContain(
'http://tevepd6od.hd-bkt.clouddn.com/prod-assets/models/table.glb?e=',
)
expect(signedReadUrl).toContain('?e=1700007200&token=')
expect(
storage.resolveObjectStorageUrlForServerAccess(
'/api/storage/object?key=prod-assets%2Fmodels%2Ftable.glb',
@ -292,6 +297,9 @@ describe('storage object provider', () => {
),
).toBe('/api/storage/object?key=prod-assets%2Fmodels%2Ftable.glb')
expect(mockQiniuPrivateDownloadUrl).not.toHaveBeenCalled()
} finally {
nowSpy.mockRestore()
}
})
it('returns direct HTTPS Qiniu read URLs to clients for non-protected assets', async () => {

View File

@ -484,7 +484,7 @@ function createQiniuStorageAdapter(): ObjectStorageAdapter {
const useHttps = readBooleanEnv(process.env.QINIU_USE_HTTPS, true)
const privateBucket = readBooleanEnv(process.env.QINIU_PRIVATE_BUCKET, false)
const privateUrlExpiresSeconds = Math.max(
Number(process.env.QINIU_PRIVATE_URL_EXPIRES_SECONDS) || 3600,
Number(process.env.QINIU_PRIVATE_URL_EXPIRES_SECONDS) || 7200,
60,
)