adding back needed response for frontend
This commit is contained in:
parent
4d0ca2880b
commit
bcd3c0a55c
|
@ -120,14 +120,14 @@ export async function createBucketIfNotExists(
|
||||||
Bucket: bucketName,
|
Bucket: bucketName,
|
||||||
})
|
})
|
||||||
.promise()
|
.promise()
|
||||||
return true
|
return false
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
const promises: any = STATE.bucketCreationPromises
|
const promises: any = STATE.bucketCreationPromises
|
||||||
const doesntExist = err.statusCode === 404,
|
const doesntExist = err.statusCode === 404,
|
||||||
noAccess = err.statusCode === 403
|
noAccess = err.statusCode === 403
|
||||||
if (promises[bucketName]) {
|
if (promises[bucketName]) {
|
||||||
await promises[bucketName]
|
await promises[bucketName]
|
||||||
return true
|
return false
|
||||||
} else if (doesntExist || noAccess) {
|
} else if (doesntExist || noAccess) {
|
||||||
if (doesntExist) {
|
if (doesntExist) {
|
||||||
promises[bucketName] = client
|
promises[bucketName] = client
|
||||||
|
@ -137,7 +137,7 @@ export async function createBucketIfNotExists(
|
||||||
.promise()
|
.promise()
|
||||||
await promises[bucketName]
|
await promises[bucketName]
|
||||||
delete promises[bucketName]
|
delete promises[bucketName]
|
||||||
return false
|
return true
|
||||||
} else {
|
} else {
|
||||||
throw new Error("Access denied to object store bucket.")
|
throw new Error("Access denied to object store bucket.")
|
||||||
}
|
}
|
||||||
|
@ -162,9 +162,9 @@ export async function upload({
|
||||||
const extension = filename.split(".").pop()
|
const extension = filename.split(".").pop()
|
||||||
const fileBytes = path ? fs.createReadStream(path) : body
|
const fileBytes = path ? fs.createReadStream(path) : body
|
||||||
const objectStore = ObjectStore(bucketName)
|
const objectStore = ObjectStore(bucketName)
|
||||||
const bucketExisted = await createBucketIfNotExists(objectStore, bucketName)
|
const bucketCreated = await createBucketIfNotExists(objectStore, bucketName)
|
||||||
|
|
||||||
if (addTTL && !bucketExisted) {
|
if (addTTL && bucketCreated) {
|
||||||
let ttlConfig = bucketTTLConfig(bucketName, 1)
|
let ttlConfig = bucketTTLConfig(bucketName, 1)
|
||||||
await objectStore.putBucketLifecycleConfiguration(ttlConfig).promise()
|
await objectStore.putBucketLifecycleConfiguration(ttlConfig).promise()
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ import { helpers } from "@budibase/shared-core"
|
||||||
import { context, objectStore } from "@budibase/backend-core"
|
import { context, objectStore } from "@budibase/backend-core"
|
||||||
import { v4 } from "uuid"
|
import { v4 } from "uuid"
|
||||||
import { parseStringPromise as xmlParser } from "xml2js"
|
import { parseStringPromise as xmlParser } from "xml2js"
|
||||||
|
import { formatBytes } from "../utilities"
|
||||||
|
|
||||||
const DOUBLE_SEPARATOR = `${SEPARATOR}${SEPARATOR}`
|
const DOUBLE_SEPARATOR = `${SEPARATOR}${SEPARATOR}`
|
||||||
const ROW_ID_REGEX = /^\[.*]$/g
|
const ROW_ID_REGEX = /^\[.*]$/g
|
||||||
|
@ -461,7 +462,11 @@ export async function handleXml(response: any) {
|
||||||
return { data, rawXml }
|
return { data, rawXml }
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function handleFileResponse(response: any, filename: string) {
|
export async function handleFileResponse(
|
||||||
|
response: any,
|
||||||
|
filename: string,
|
||||||
|
startTime: number
|
||||||
|
) {
|
||||||
let presignedUrl
|
let presignedUrl
|
||||||
const responseBuffer = await response.arrayBuffer()
|
const responseBuffer = await response.arrayBuffer()
|
||||||
const fileExtension = filename.includes(".")
|
const fileExtension = filename.includes(".")
|
||||||
|
@ -481,12 +486,17 @@ export async function handleFileResponse(response: any, filename: string) {
|
||||||
|
|
||||||
presignedUrl = await objectStore.getPresignedUrl(bucket, key, 600)
|
presignedUrl = await objectStore.getPresignedUrl(bucket, key, 600)
|
||||||
return {
|
return {
|
||||||
file: {
|
data: {
|
||||||
size: responseBuffer.byteLength,
|
size: responseBuffer.byteLength,
|
||||||
name: processedFileName,
|
name: processedFileName,
|
||||||
url: presignedUrl,
|
url: presignedUrl,
|
||||||
extension: fileExtension,
|
extension: fileExtension,
|
||||||
key: key,
|
key: key,
|
||||||
},
|
},
|
||||||
|
info: {
|
||||||
|
code: response.status,
|
||||||
|
size: formatBytes(responseBuffer.byteLength),
|
||||||
|
time: `${Math.round(performance.now() - startTime)}ms`,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue