-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: support for uploading, viewing, and deleting files from cloudflare #22
Conversation
Okay, I got most of the configuration and documentation stuff set up first to make this a smooth implementation. |
Just finished implementing the backend methods utilizing Cloudflare to upload files to the bucket, view files in the bucket by generating a presigned URL and sending it to the client, and deleting files. I'm now going to get the UI out for doing all of that, but in the Next.js client. |
Okay the GitHub Actions workflow was failing due to me not including the |
Okay, the feature is complete! That wasn't too bad. |
As referenced in (#21), this pull request is preparing us for the RAG implementation by supporting PDF CRUD (besides update) actions. It also includes several changes to improve the configuration, documentation, and database schema of the project.
API Implementation
GET /api/files
- List all files in the Cloudflare R2 bucketDELETE /api/files?id=123
- Delete a file with theid
123GET /api/files/[id]/sign
- Get the presigned URL for a fileid
(How we allow the client to view them)POST /api/upload/pdf
- Upload a PDF to the Cloudflare bucket and metadata to the databaseUI/UX Changes
/upload
- contains a form to upload a file and link to see all files/files
- a list of all files in the Cloudflare R2 bucket, including buttons to preview and delete them.Sign Out
- logs the current user out of the application.Configuration Improvements:
.env.example
file with placeholders for authentication secrets, database configuration, Pinecone, OpenAI, and Cloudflare R2 settings.Documentation Updates:
README.md
to include instructions for copying the.env.example
file, starting the PostgreSQL database using Docker, and added a new troubleshooting section.package.json
scripts, with descriptions on what they do.Dependency Additions:
@aws-sdk/client-s3
,@aws-sdk/s3-request-presigner
, andaxios
topackage.json
.Database Schema Changes:
course_materials
table in the database with fields forid
,title
,fileName
,fileUrl
,uploadedAt
, anddescription
. (Currently, we can continue to refine this as we go!)