diff --git a/packages/api/src/resolvers/upload_files/index.ts b/packages/api/src/resolvers/upload_files/index.ts index cc689ded2..64174da9e 100644 --- a/packages/api/src/resolvers/upload_files/index.ts +++ b/packages/api/src/resolvers/upload_files/index.ts @@ -11,6 +11,7 @@ import { WithDataSourcesContext } from '../types' import { generateUploadSignedUrl, generateUploadFilePathName, + getFilePublicUrl, } from '../../utils/uploads' import path from 'path' import normalizeUrl from 'normalize-url' @@ -99,11 +100,12 @@ export const uploadFileRequestResolver: ResolverFn< input.contentType ) - // If this is a file URL, we swap in the GCS signed - // URL + const publicUrl = getFilePublicUrl(uploadFilePathName) + + // If this is a file URL, we swap in the GCS public URL if (isFileUrl(input.url)) { await models.uploadFile.update(uploadFileData.id, { - url: uploadSignedUrl, + url: publicUrl, status: UploadFileStatus.Initialized, }) } @@ -135,7 +137,7 @@ export const uploadFileRequestResolver: ResolverFn< } else { const pageId = await createPage( { - url: isFileUrl(input.url) ? uploadSignedUrl : input.url, + url: isFileUrl(input.url) ? publicUrl : input.url, id: input.clientRequestId || '', userId: claims.uid, title: title, diff --git a/packages/api/src/utils/uploads.ts b/packages/api/src/utils/uploads.ts index 2fc5535d6..24f44723f 100644 --- a/packages/api/src/utils/uploads.ts +++ b/packages/api/src/utils/uploads.ts @@ -15,6 +15,13 @@ const storage = env.fileUpload?.gcsUploadSAKeyFilePath : new Storage() const bucketName = env.fileUpload.gcsUploadBucket +export const getFilePublicUrl = (filePathName: string): string => { + return storage + .bucket(bucketName) + .file(filePathName) + .publicUrl() +} + export const generateUploadSignedUrl = async ( filePathName: string, contentType: string,