https://app.swaggerhub.com/apis/elmeast1/CephStorage/1.0.2
-
bucket name: username + '_'*3 + bucketname
-
properties available to set:
- content_type
- md5 (integrity validating)
- timetag (recording creating time)
-
key index data structure:
{ "key": "KEYNAME(String)", "ts": "INT(Timestamp)", "vfolder": "PrefixingPath(String)", "md5": "MD5(String)", "content_type": "ContentType(String)", "size": "SizeOfKey(Int)" }
-
Key Creating Progress Record:
{ "token": "Token(String)", "progress": "State(String)", }
State are in [inprogress, fail, success]
- cephutils/cephop.py handles ceph operation with boto. it requires:
- access key of Ceph User
- secret key of Ceph User
- ceph rgw gateway address
- An address used for publishing resource url.
- download_path where temporarily downloaded content are stored
- CephStorageIndex: Store key indexes.
- CephStorageGeneral: General Info
- CephStorageConfiguratoin: Config Info
- CephStorageMonitor: Monitoring Data
- db: CephStorageGeneral.mirror
- data structure:
{
"mirror_host": "String [Unique]",
"bucket_name": "String",
"real_host": "String"
}
- Nginx server cached content to user
- Nginx ask Proxy for content not in Cache
- Proxy ask Ceph for content and proxy back to nginx.
- Proxy ask Provider's origin for content when Ceph doesn't have it
- Proxy proxy back content from Provider's origin and upload to Ceph.