Page MenuHomePhorge

D15315.1765035791.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D15315.1765035791.diff

diff --git a/services/blob/src/constants.rs b/services/blob/src/constants.rs
--- a/services/blob/src/constants.rs
+++ b/services/blob/src/constants.rs
@@ -27,6 +27,7 @@
pub const ATTR_BLOB_HASH: &str = "blob_hash";
pub const ATTR_HOLDER: &str = "holder";
pub const ATTR_INDEXED_TAG: &str = "indexed_tag";
+ pub const ATTR_TAGS: &str = "tags";
pub const ATTR_CREATED_AT: &str = "created_at";
pub const ATTR_LAST_MODIFIED: &str = "last_modified";
pub const ATTR_S3_PATH: &str = "s3_path";
diff --git a/services/blob/src/database/client.rs b/services/blob/src/database/client.rs
--- a/services/blob/src/database/client.rs
+++ b/services/blob/src/database/client.rs
@@ -108,11 +108,12 @@
&self,
blob_hash: impl Into<String>,
holder: impl Into<String>,
+ tags: &[String],
) -> DBResult<()> {
let blob_hash: String = blob_hash.into();
let holder: String = holder.into();
- let indexed_tag = get_indexable_tag(&holder, &[]);
+ let indexed_tag = get_indexable_tag(&holder, tags);
validate_holder(&holder)?;
let mut item = HashMap::from([
@@ -121,6 +122,15 @@
(ATTR_UNCHECKED.to_string(), UncheckedKind::Holder.into()),
]);
+ if !tags.is_empty() {
+ item.insert(ATTR_TAGS.to_string(), AttributeValue::Ss(tags.to_vec()));
+ } else if let Some(single_tag) = &indexed_tag {
+ item.insert(
+ ATTR_TAGS.to_string(),
+ AttributeValue::Ss(vec![single_tag.to_string()]),
+ );
+ }
+
if let Some(tag) = indexed_tag {
item.insert(ATTR_INDEXED_TAG.to_string(), AttributeValue::S(tag));
}
diff --git a/services/blob/src/service.rs b/services/blob/src/service.rs
--- a/services/blob/src/service.rs
+++ b/services/blob/src/service.rs
@@ -223,12 +223,21 @@
&self,
blob_hash: impl Into<String>,
holder: impl Into<String>,
+ ) -> BlobServiceResult<()> {
+ self.assign_holder_with_tags(blob_hash, holder, &[]).await
+ }
+
+ pub async fn assign_holder_with_tags(
+ &self,
+ blob_hash: impl Into<String>,
+ holder: impl Into<String>,
+ tags: &[String],
) -> BlobServiceResult<()> {
let blob_hash: String = blob_hash.into();
trace!(blob_hash, "Attempting to assign holder");
self
.db
- .put_holder_assignment(blob_hash.clone(), holder.into())
+ .put_holder_assignment(blob_hash.clone(), holder.into(), tags)
.await?;
trace!("Holder assigned.");

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 6, 3:43 PM (20 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5836678
Default Alt Text
D15315.1765035791.diff (2 KB)

Event Timeline