aboutsummaryrefslogtreecommitdiff
path: root/src/model/s3
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2024-02-26 17:17:43 +0100
committerAlex Auvolat <alex@adnab.me>2024-02-27 10:15:18 +0100
commit9d14a859d80a0aac21dd493df9f97d70f9bd444e (patch)
tree627f040cb02fc7268195487f155877e001706ea2 /src/model/s3
parenta1d25078ccd6c83346c397ddd6caaadb16d0ef1f (diff)
downloadgarage-9d14a859d80a0aac21dd493df9f97d70f9bd444e.tar.gz
garage-9d14a859d80a0aac21dd493df9f97d70f9bd444e.zip
[sse-c] refactor read_and_put_blocks and handle encryption in PutObject
Diffstat (limited to 'src/model/s3')
-rw-r--r--src/model/s3/object_table.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/model/s3/object_table.rs b/src/model/s3/object_table.rs
index 20824e8d..7fa4b9e0 100644
--- a/src/model/s3/object_table.rs
+++ b/src/model/s3/object_table.rs
@@ -263,7 +263,9 @@ mod v010 {
pub enum ObjectVersionData {
/// The object was deleted, this Version is a tombstone to mark it as such
DeleteMarker,
- /// The object is short, it's stored inlined
+ /// The object is short, it's stored inlined.
+ /// It is never compressed. For encrypted objects, it is encrypted using
+ /// AES256-GCM, like the encrypted headers.
Inline(ObjectVersionMeta, #[serde(with = "serde_bytes")] Vec<u8>),
/// The object is not short, Hash of first block is stored here, next segments hashes are
/// stored in the version table
@@ -273,7 +275,8 @@ mod v010 {
/// Metadata about the object version
#[derive(PartialEq, Eq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
pub struct ObjectVersionMeta {
- /// Size of the object
+ /// Size of the object. If object is encrypted/compressed,
+ /// this is always the size of the unencrypted/uncompressed data
pub size: u64,
/// etag of the object
pub etag: String,