From: Denys Fedoryshchenko <denys.f@collabora.com>
To: kernelci@lists.linux.dev
Subject: kernelci-storage update
Date: Wed, 19 Mar 2025 19:29:13 +0200 [thread overview]
Message-ID: <7697aa6eb2069b0ba7ff8f221935dede43d97a3e.camel@collabora.com> (raw)
# 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!
reply other threads:[~2025-03-19 17:29 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7697aa6eb2069b0ba7ff8f221935dede43d97a3e.camel@collabora.com \
--to=denys.f@collabora.com \
--cc=kernelci@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox