feat: complete API-driven projects with infrastructure and business acceptance

This commit is contained in:
2026-09-23 17:33:50 +08:00
parent 04a1f7999d
commit 2c74dc0859
137 changed files with 11926 additions and 105 deletions

View File

@@ -19,7 +19,7 @@ type Store struct {
}
func New(client *minio.Client, bucket string, maxBytes int64) (*Store, error) {
if client == nil || bucket == "" || maxBytes < 0 {
if client == nil || bucket == "" || maxBytes < 0 || maxBytes > 5<<40 {
return nil, errors.New("storage/s3: client, bucket and nonnegative limit required")
}
if maxBytes == 0 {
@@ -37,7 +37,11 @@ func (s *Store) Put(ctx context.Context, key string, reader io.Reader, size int6
if size > s.maxBytes {
return storage.Info{}, storage.ErrTooLarge
}
result, err := s.client.PutObject(ctx, s.bucket, key, storage.ContextReader{Context: ctx, Reader: reader}, size, minio.PutObjectOptions{ContentType: contentType})
checked, err := (storage.UploadPolicy{MaxBytes: s.maxBytes}).PrepareUpload(ctx, reader, size, contentType)
if err != nil {
return storage.Info{}, err
}
result, err := s.client.PutObject(ctx, s.bucket, key, checked, size, minio.PutObjectOptions{ContentType: contentType})
if err != nil {
return storage.Info{}, err
}