Skip to content

Commit 9bb75ba

Browse files
committed
fix: add missing dep and improve demo
1 parent 322bf7e commit 9bb75ba

File tree

8 files changed

+49
-21
lines changed

8 files changed

+49
-21
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export default eventHandler(async (event) => {
2+
await requireUserSession(event)
3+
const { pathname } = await getValidatedRouterParams(event, z.object({
4+
pathname: z.string().min(1)
5+
}).parse)
6+
7+
return useBlob().delete(pathname)
8+
})
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export default eventHandler(async (event) => {
2+
await requireUserSession(event)
3+
const { pathname } = await getValidatedRouterParams(event, z.object({
4+
pathname: z.string().min(1)
5+
}).parse)
6+
7+
return useBlob().serve(event, pathname)
8+
})

_demo/server/api/storage/[key].delete.ts

-8
This file was deleted.

_demo/server/api/storage/[key].get.ts

-8
This file was deleted.

_demo/server/api/storage/upload.post.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ export default eventHandler(async (event) => {
66
throw createError({ statusCode: 400, message: 'No file provided' })
77
}
88

9-
if (!file.type.startsWith('image/')) {
10-
throw createError({ statusCode: 400, message: 'File must be an image' })
11-
}
9+
ensureBlob(file, { maxSize: '1MB', types: ['image' ]})
1210

13-
return useBlob().put(`images/${file.name}`, file)
11+
return useBlob().put(`images/${file.name}`, file, { addRandomSuffix: false })
1412
})

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
},
2727
"dependencies": {
2828
"@cloudflare/workers-types": "^4.20240208.0",
29+
"@sindresorhus/slugify": "^2.2.1",
30+
"@uploadthing/mime-types": "^0.2.2",
2931
"mime": "^4.0.1",
3032
"nuxt-auth-utils": "^0.0.16",
3133
"pkg-types": "^1.0.3",

pnpm-lock.yaml

+25
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/utils/blob.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { extensions } from '@uploadthing/mime-types'
2+
import slugify from '@sindresorhus/slugify'
23
import type { R2Bucket } from '@cloudflare/workers-types/experimental'
34
import { ofetch } from 'ofetch'
45
import mime from 'mime'
@@ -75,7 +76,9 @@ export function useBlob() {
7576

7677
const { dir, ext, name: filename } = parse(pathname)
7778
if (addRandomSuffix) {
78-
pathname = joinURL(dir === '.' ? '' : dir, `${filename}-${randomUUID().split('-')[0]}${ext}`)
79+
pathname = joinURL(dir === '.' ? '' : dir, `${slugify(filename)}-${randomUUID().split('-')[0]}${ext}`)
80+
} else {
81+
pathname = joinURL(dir === '.' ? '' : dir, `${slugify(filename)}${ext}`)
7982
}
8083

8184
const httpMetadata: Record<string, string> = { contentType }

0 commit comments

Comments
 (0)