文件修改接口,修改文件名,是只修改FileName这个字段,而不是连location的那个位置的文件名也一起修改并且更新location字段吗

来源:2-7 编码实战:实现文件修改接口+小结

杰神

2019-03-20

文件修改接口,修改文件名,是只修改FileName这个字段,而不是连location的那个位置的文件名也一起修改并且更新location字段吗?
我理解的文件名修改是指将

{
  "FileSha1": "a2e4bce4fb37633ec00f4bb31666329c4cf9210f",
  "FileName": "headline_notice@3x.png",
  "FileSize": 2682,
  "Location": "./uploadDir/headline_notice@3x.png",
  "UploadAt": "2019-03-20 18:20:23"
}

修改成为

{
  "FileSha1": "a2e4bce4fb37633ec00f4bb31666329c4cf9210f",
  "FileName": "newName.png",
  "FileSize": 2682,
  "Location": "./uploadDir/newName.png",
  "UploadAt": "2019-03-20 18:20:23"
}
写回答

1回答

xiaomo

2019-03-20

同学你好,Location字段可以不用修改的,对于用户来说其实这个字段是隐藏的,它只作为路径来寻找已上传的文件;用户看到的的用户名是FileName指定的,所以重命名时只需要改FileName字段就行了。
另外Location严格上应该是要具有唯一性的,比如不同的文件可能取了相同的FileName,所以我演示的代码也需要改下,改成用FileSha1来拼接Location,比如:

{
  "FileSha1": "a2e4bce4fb37633ec00f4bb31666329c4cf9210f",
  "FileName": "headline_notice@3x.png",
  "FileSize": 2682,
  "Location": "./uploadDir/headline_notice@3x.png",
  "UploadAt": "2019-03-20 18:20:23"
}

修改成:

{
  "FileSha1": "a2e4bce4fb37633ec00f4bb31666329c4cf9210f",
  "FileName": "headline_notice@3x.png",
  "FileSize": 2682,
  "Location": "./uploadDir/a2e4bce4fb37633ec00f4bb31666329c4cf9210f",
  "UploadAt": "2019-03-20 18:20:23"
}

这样只要文件上传完成后,这个Location的值就不用再进行更新,因为FileSha1是不会变的。

我稍后把代码优化下,多谢提醒!

1
5
杰神
非常感谢!
2019-03-22
共5条回复

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程