本篇我们会分两部分 - 校验和去重
前面讲到的Metadata,如果有了Metadata,我们可以做到上述两个部分,这能为储存系统节省许多空间
校验
我们的校验做在API层
if hash == obj_hash:
if produce_object({'name': obj_name, 'version': version, 'hash': hash, 'obj': open(os.path.join(DIR_PATH, hash), 'rb').read()}):
return Response(json.dumps({}), status=200, mimetype='application/json')
else:
return Response(json.dumps({}), status=400, mimetype='application/json')
python-simple-object-storage/run.py at master · kaichiachen/python-simple-object-storage
可以看到,前端也必须传hash做为参数以保证安全
去重
对於同一个object,他的hash是一样的,因为他们的内容一样,所以去重我们简单的把要消费的资料的名字设定为hash,如下所示
res = Producer.getInstance().send(server, value={f"{content['hash']}-{i}": comp})
https://github.com/kaichiachen/python-simple-object-storage/blob/master/distributed_obj_system/backend/api/obj.py#L46
这样在data层,看到的就是一个个hash过的object,对於重复的hash就会自动覆盖
透过网路社团发文做行销,因为几乎等於零成本,所以一直都是很热门的行销管道,但要得到好的发文转换效果,...
前言 Loop对於程序来说非常非常非常之重要,手动一万次跟电脑做一万次效率差非常多,当然也没有人会去...
CSS的初始化 简单理解 : CSS初始化是指重设浏览器的样式 (也称 CSS reset) 每个网...
常见的 HTML elements 标题 headings 在 VS code 中输入以下程序码 &...
前述 今天用前面做过的小画家相似功能,来完成一个可以在文件上面签名的功能~ 当然也会有新的东西可以玩...