forked from TrueCloudLab/frostfs-s3-gw
39 lines
No EOL
8.3 KiB
XML
39 lines
No EOL
8.3 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="424px" preserveAspectRatio="none" style="width:842px;height:424px;background:#FFFFFF;" version="1.1" viewBox="0 0 842 424" width="842px" zoomAndPan="magnify"><defs/><g><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="213" x2="213" y1="36.2969" y2="388.8906"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="307" x2="307" y1="36.2969" y2="388.8906"/><line style="stroke:#181818;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="530.5" x2="530.5" y1="36.2969" y2="388.8906"/><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="46" x="190" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="32" x="197" y="24.9951">User</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="46" x="190" y="387.8906"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="32" x="197" y="407.8857">User</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="62" x="276" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="283" y="24.9951">S3-GW</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="62" x="276" y="387.8906"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="283" y="407.8857">S3-GW</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="107" x="477.5" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="93" x="484.5" y="24.9951">FrostFS Node</text><rect fill="#E2E2F0" height="30.2969" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="107" x="477.5" y="387.8906"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="93" x="484.5" y="407.8857">FrostFS Node</text><polygon fill="#181818" points="295,63.4297,305,67.4297,295,71.4297,299,67.4297" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="213" x2="301" y1="67.4297" y2="67.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="70" x="220" y="62.3638">AccessKey</text><polygon fill="#181818" points="519,103.1289,529,107.1289,519,111.1289,523,107.1289" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="307" x2="525" y1="107.1289" y2="107.1289"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="95" x="314" y="102.063">Search objects</text><path d="M536,80.4297 L536,120.4297 L835,120.4297 L835,90.4297 L825,80.4297 L536,80.4297 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M825,80.4297 L825,90.4297 L835,90.4297 L825,80.4297 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="233" x="542" y="97.4966">Search by exact attribute matching:</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="204" x="542" y="112.6294">S3-Access-Box-CRDT-Name:</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="4" x="746" y="112.6294"> </text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacing" textLength="70" x="750" y="112.6294">AccessKey</text><polygon fill="#181818" points="318,142.8281,308,146.8281,318,150.8281,314,146.8281" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="312" x2="530" y1="146.8281" y2="146.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="144" x="324" y="141.7622">AccessBox objects ids</text><polygon fill="#181818" points="519,171.9609,529,175.9609,519,179.9609,523,175.9609" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="307" x2="525" y1="175.9609" y2="175.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="159" x="314" y="170.895">Head AccessBox objects</text><polygon fill="#181818" points="318,201.0938,308,205.0938,318,209.0938,314,205.0938" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="312" x2="530" y1="205.0938" y2="205.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="170" x="324" y="200.0278">AccessBox object headers</text><line style="stroke:#181818;stroke-width:1.0;" x1="307" x2="349" y1="245.8594" y2="245.8594"/><line style="stroke:#181818;stroke-width:1.0;" x1="349" x2="349" y1="245.8594" y2="258.8594"/><line style="stroke:#181818;stroke-width:1.0;" x1="308" x2="349" y1="258.8594" y2="258.8594"/><polygon fill="#181818" points="318,254.8594,308,258.8594,318,262.8594,314,258.8594" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="163" x="314" y="240.7935">Choose latest AccessBox</text><path d="M5,218.0938 L5,273.0938 L302,273.0938 L302,228.0938 L292,218.0938 L5,218.0938 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M292,218.0938 L292,228.0938 L302,228.0938 L292,218.0938 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="276" x="11" y="235.1606">Sort AccessBox headers by creation epoch</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="137" x="11" y="250.2935">and then by ObjectID</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="55" x="11" y="265.4263">Pick last</text><polygon fill="#181818" points="519,295.625,529,299.625,519,303.625,523,299.625" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="307" x2="525" y1="299.625" y2="299.625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="141" x="314" y="294.5591">Get AccessBox object</text><polygon fill="#181818" points="318,324.7578,308,328.7578,318,332.7578,314,328.7578" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="312" x2="530" y1="328.7578" y2="328.7578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="114" x="324" y="323.6919">AccessBox object</text><line style="stroke:#181818;stroke-width:1.0;" x1="307" x2="349" y1="357.8906" y2="357.8906"/><line style="stroke:#181818;stroke-width:1.0;" x1="349" x2="349" y1="357.8906" y2="370.8906"/><line style="stroke:#181818;stroke-width:1.0;" x1="308" x2="349" y1="370.8906" y2="370.8906"/><polygon fill="#181818" points="318,366.8906,308,370.8906,318,374.8906,314,370.8906" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="210" x="314" y="352.8247">Decrypt and validate AccessBox</text><!--MD5=[a828dba61fdcff1c3cca705c4f69178c]
|
|
@startuml
|
|
|
|
User -> "S3-GW": AccessKey
|
|
"S3-GW" -> "FrostFS Node": Search objects
|
|
|
|
note right
|
|
Search by exact attribute matching:
|
|
**S3-Access-Box-CRDT-Name:** //AccessKey//
|
|
end note
|
|
|
|
"FrostFS Node" - -> "S3-GW": AccessBox objects ids
|
|
|
|
"S3-GW" -> "FrostFS Node" : Head AccessBox objects
|
|
"FrostFS Node" - -> "S3-GW": AccessBox object headers
|
|
|
|
"S3-GW" -> "S3-GW": Choose latest AccessBox
|
|
|
|
note left
|
|
Sort AccessBox headers by creation epoch
|
|
and then by ObjectID
|
|
Pick last
|
|
end note
|
|
|
|
"S3-GW" -> "FrostFS Node" : Get AccessBox object
|
|
"FrostFS Node" - -> "S3-GW": AccessBox object
|
|
|
|
"S3-GW" -> "S3-GW": Decrypt and validate AccessBox
|
|
|
|
@enduml
|
|
|
|
PlantUML version 1.2022.13(Sat Nov 19 16:22:17 MSK 2022)
|
|
(GPL source distribution)
|
|
Java Runtime: OpenJDK Runtime Environment
|
|
JVM: OpenJDK 64-Bit Server VM
|
|
Default Encoding: UTF-8
|
|
Language: en
|
|
Country: US
|
|
--></g></svg> |