mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: use proto streams to increase maximum module files payload (#18268)
This PR implements protobuf streaming to handle large module files by: 1. **Streaming large payloads**: When module files exceed the 4MB limit, they're streamed in chunks using a new UploadFile RPC method 2. **Database storage**: Streamed files are stored in the database and referenced by hash for deduplication 3. **Backward compatibility**: Small module files continue using the existing direct payload method
This commit is contained in:
@@ -8743,6 +8743,12 @@ func (q *FakeQuerier) InsertFile(_ context.Context, arg database.InsertFileParam
|
||||
q.mutex.Lock()
|
||||
defer q.mutex.Unlock()
|
||||
|
||||
if slices.ContainsFunc(q.files, func(file database.File) bool {
|
||||
return file.CreatedBy == arg.CreatedBy && file.Hash == arg.Hash
|
||||
}) {
|
||||
return database.File{}, newUniqueConstraintError(database.UniqueFilesHashCreatedByKey)
|
||||
}
|
||||
|
||||
//nolint:gosimple
|
||||
file := database.File{
|
||||
ID: arg.ID,
|
||||
|
||||
Reference in New Issue
Block a user