Attachments
Getting started
Add your first attachments to Uplo. For example, we will add avatar
for User
and
multiple images
for Post
.
const uplo = Uplo({
// ... other Uplo config
attachments: {
user: {
avatar: true, // pass true to use default options
},
post: {
images: { multiple: true }
}
}
})
Options
multiple = false
(optional): Specify for multiple attachment support on a single record.serviceName
(optional): You can provide a custom service.directUpload = true
(optional): You can disable direct uploads for specific attachments if needed.
Find attachment
Find an attachment by specifying User
ID.
Single
const attachment = await uplo.attachments.user(123).avatar.findOne()
console.log(attachment.blob.url());
Multiple
const attachments = await uplo.attachments.post(456).images.findMany()
Detach attachment
Detach an attachment from a record.
Single
const attachment = await uplo.attachments.user(123).avatar.detach()
Multiple
Detach one attachment.
const attachments = await uplo.attachments.post(456).images.detach(attachmentId)
Detach all attachments.
const attachments = await uplo.attachments.post(456).images.detachMany()
Attach file
Attach a file from a file path.
import { blobFileInput } from '@uplo/node'
const fileInput = await blobFileInput({
path: '/home/images/image.png',
// contentType: 'image/png', // Optional
// fileName: 'image.png' // Optional
})
const attachment = await uplo.attachments.user(123).avatar.attachFile(fileInput)
Attach a file with string.
import { blobStringInput } from '@uplo/node'
const fileInput = await blobStringInput({
content: 'Hello',
contentType: 'text/plain',
fileName: 'welcome.txt'
})
const attachment = await uplo.attachments.user(123).avatar.attachFile(fileInput)
Attach a file with buffer.
import { blobBufferInput } from '@uplo/node'
const fileInput = await blobBufferInput({
buffer,
contentType: 'text/plain',
fileName: 'welcome.txt'
})
const attachment = await uplo.attachments.user(123).avatar.attachFile(fileInput)
Attach signed file
If you use direct uploads, you get a Signed ID. You need to manually attach a Signed ID to your records. How to get a Signed ID, please view Client documentation.
const signedId = req.params['signedId']
const attachment = await uplo.attachments.user(123).avatar.attachSignedFile(signedId)