diff --git a/packages/api/src/resolvers/article/index.ts b/packages/api/src/resolvers/article/index.ts index bf7dc89f9..bd016a345 100644 --- a/packages/api/src/resolvers/article/index.ts +++ b/packages/api/src/resolvers/article/index.ts @@ -98,10 +98,7 @@ import { parsePreparedContent, } from '../../utils/parser' import { parseSearchQuery, sortParamsToSort } from '../../utils/search' -import { - getStorageFileDetails, - makeStorageFilePublic, -} from '../../utils/uploads' +import { getStorageFileDetails } from '../../utils/uploads' import { itemTypeForContentType } from '../upload_files' export enum ArticleFormat { @@ -310,7 +307,6 @@ export const createArticleResolver = authorized< pubsub ) } - await makeStorageFilePublic(uploadFileData.id, uploadFileData.fileName) } let libraryItemToReturn: LibraryItem diff --git a/packages/api/src/resolvers/upload_files/index.ts b/packages/api/src/resolvers/upload_files/index.ts index 36169b5c4..9ea214584 100644 --- a/packages/api/src/resolvers/upload_files/index.ts +++ b/packages/api/src/resolvers/upload_files/index.ts @@ -24,7 +24,6 @@ import { contentReaderForLibraryItem, generateUploadFilePathName, generateUploadSignedUrl, - getFilePublicUrl, } from '../../utils/uploads' const isFileUrl = (url: string): boolean => { @@ -110,13 +109,12 @@ export const uploadFileRequestResolver = authorized< input.contentType ) - const publicUrl = getFilePublicUrl(uploadFilePathName) - - // If this is a file URL, we swap in the GCS public URL + // If this is a file URL, we swap in a special URL + const attachmentUrl = `https://omnivore.app/attachments/${uploadFilePathName}` if (isFileUrl(input.url)) { await authTrx(async (tx) => { await tx.getRepository(UploadFile).update(uploadFileId, { - url: publicUrl, + url: attachmentUrl, status: UploadFileStatus.Initialized, }) }) @@ -142,8 +140,8 @@ export const uploadFileRequestResolver = authorized< const uploadFileId = uploadFileData.id const item = await createLibraryItem( { - originalUrl: isFileUrl(input.url) ? publicUrl : input.url, id: input.clientRequestId || undefined, + originalUrl: isFileUrl(input.url) ? attachmentUrl : input.url, user: { id: uid }, title, readableContent: '', diff --git a/packages/api/src/routers/svc/email_attachment.ts b/packages/api/src/routers/svc/email_attachment.ts index b9bf3c77c..6c127135b 100644 --- a/packages/api/src/routers/svc/email_attachment.ts +++ b/packages/api/src/routers/svc/email_attachment.ts @@ -24,7 +24,6 @@ import { generateUploadFilePathName, generateUploadSignedUrl, getStorageFileDetails, - makeStorageFilePublic, } from '../../utils/uploads' export function emailAttachmentRouter() { @@ -143,11 +142,12 @@ export function emailAttachmentRouter() { return res.status(400).send('BAD REQUEST') } - const uploadFileUrlOverride = await makeStorageFilePublic( - uploadFileData.id, - uploadFileData.fileName + const uploadFilePathName = generateUploadFilePathName( + uploadFileId, + uploadFile.fileName ) + const uploadFileUrlOverride = `https://omnivore.app/attachments/${uploadFilePathName}` const uploadFileHash = uploadFileDetails.md5Hash const itemType = uploadFile.contentType === 'application/pdf' diff --git a/packages/api/src/utils/uploads.ts b/packages/api/src/utils/uploads.ts index 34bfb5854..2d31b525f 100644 --- a/packages/api/src/utils/uploads.ts +++ b/packages/api/src/utils/uploads.ts @@ -34,10 +34,6 @@ 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 countOfFilesWithPrefix = async (prefix: string) => { const [files] = await storage.bucket(bucketName).getFiles({ prefix }) return files.length @@ -81,22 +77,6 @@ export const generateDownloadSignedUrl = async ( return url } -export const makeStorageFilePublic = async ( - id: string, - fileName: string -): Promise => { - // if (env.dev.isLocal) { - // return 'http://localhost:3000/public/' + id + '/' + fileName - // } - - // Makes the file public - const filePathName = generateUploadFilePathName(id, fileName) - await storage.bucket(bucketName).file(filePathName).makePublic() - - const fileObj = storage.bucket(bucketName).file(filePathName) - return fileObj.publicUrl() -} - export const getStorageFileDetails = async ( id: string, fileName: string