kernelci.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* kernelci-storage update
@ 2025-03-19 17:29 Denys Fedoryshchenko
  0 siblings, 0 replies; only message in thread
From: Denys Fedoryshchenko @ 2025-03-19 17:29 UTC (permalink / raw)
  To: kernelci

# KernelCI-Storage Project Update

## Deployment Status  
As mentioned in the last newsletter, we have migrated the production server to a new distribution (Bookworm) and deployed kernelci-storage. The system is also deployed on staging and is currently migrating to files-staging.kernelci.org.

## Implementation Details  
As planned in the first newsletter, we implemented a minimal API sufficient for the KernelCI project to work. Based on feedback, we updated endpoints to make them compatible with the kernelci-core storage backend implementation.

Currently, kernelci-storage is written in Rust. The source code is available at the [kernelci-storage]([https://github.com/nuclearcat/kernelci-storage](https://github.com/nuclearcat/kernelci-storage)) repository but will be moved to the KernelCI organization namespace once pending issues are resolved.

Available endpoints are documented in the [kernelci-storage README]([https://github.com/nuclearcat/kernelci-storage/blob/main/README.md](https://github.com/nuclearcat/kernelci-storage/blob/main/README.md)):  
- `GET|HEAD /path/to/file` - Download artifact (doesn't require authentication) or retrieve file info  
- `POST /upload` - Upload artifact (requires authentication), multipart/form-data  
- field: file0 - file to upload  
- field: path - path to save file to, can be absolute or relative to upload directory (default: upload directory root)

## Implemented Features  
- Heuristics to set correct content-type for uploaded files, while also supporting custom content-type settings  
- Support for uploading large files (resolving issues that existed in the Python backend)  
- Operation as a caching forward proxy to reduce charges from the storage provider per request  
- Support for downloading files with range requests

## Upcoming Features  
- Support for restricting upload directory (by user)  
- Lifecycle management for uploaded files (certain types of files might be deleted earlier)

## Challenges  
We has planned file browsing feature, but during implementation we faced challenge: Azure Blob Storage object list retrieval is very slow, 5000 objects (one request limit) takes 2-5 seconds to complete, and due dtb files we have tens of millions of them. We have solution for this, but it is not implemented yet.


## Future Plans  
We need your feedback! Please share your thoughts and suggestions on the mailing list or send message to our Discord server.

Thanks for reading!


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-03-19 17:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-19 17:29 kernelci-storage update Denys Fedoryshchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).