* Add keyPrefix support for TiKV store
Similar to the Redis keyPrefix feature (#7299), this adds keyPrefix support
for TiKV stores to enable sharing a single TiKV cluster as metadata store
for multitenant SeaweedFS clusters.
Changes:
- Add keyPrefix field to TikvStore struct
- Update Initialize function to read keyPrefix from config
- Add getKey method to prepend prefix to all keys
- Update generateKey, getNameFromKey, and genDirectoryKeyPrefix methods
to be store receiver methods and handle key prefixing
- Update filer.toml scaffold with keyPrefix configuration option
Fixes#7752
* Fix potential slice corruption in getKey method
Use a new slice with proper capacity to avoid modifying the
underlying array of store.keyPrefix when appending.
* Add keyPrefix validation and defensive bounds check
- Add validation in Initialize to reject keyPrefix longer than 256 bytes
- Add bounds check in getNameFromKey to prevent panic on malformed keys
* Update weed/filer/tikv/tikv_store.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update weed/command/scaffold/filer.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>