remove uploadedAt from manifest (#1091)

* remove uploadedAt from manifest

* fix test
This commit is contained in:
Dmitriy Ryajov 2025-02-12 04:48:58 -06:00 committed by GitHub
parent 20f6fef7ab
commit 45e97513a7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 3 additions and 36 deletions

View File

@ -63,7 +63,6 @@ proc encode*(manifest: Manifest): ?!seq[byte] =
# optional ErasureInfo erasure = 7; # erasure coding info # optional ErasureInfo erasure = 7; # erasure coding info
# optional filename: ?string = 8; # original filename # optional filename: ?string = 8; # original filename
# optional mimetype: ?string = 9; # original mimetype # optional mimetype: ?string = 9; # original mimetype
# optional uploadedAt: ?int64 = 10; # original uploadedAt
# } # }
# ``` # ```
# #
@ -102,9 +101,6 @@ proc encode*(manifest: Manifest): ?!seq[byte] =
if manifest.mimetype.isSome: if manifest.mimetype.isSome:
header.write(9, manifest.mimetype.get()) header.write(9, manifest.mimetype.get())
if manifest.uploadedAt.isSome:
header.write(10, manifest.uploadedAt.get().uint64)
pbNode.write(1, header) # set the treeCid as the data field pbNode.write(1, header) # set the treeCid as the data field
pbNode.finish() pbNode.finish()
@ -135,7 +131,6 @@ proc decode*(_: type Manifest, data: openArray[byte]): ?!Manifest =
verifiableStrategy: uint32 verifiableStrategy: uint32
filename: string filename: string
mimetype: string mimetype: string
uploadedAt: uint64
# Decode `Header` message # Decode `Header` message
if pbNode.getField(1, pbHeader).isErr: if pbNode.getField(1, pbHeader).isErr:
@ -169,9 +164,6 @@ proc decode*(_: type Manifest, data: openArray[byte]): ?!Manifest =
if pbHeader.getField(9, mimetype).isErr: if pbHeader.getField(9, mimetype).isErr:
return failure("Unable to decode `mimetype` from manifest!") return failure("Unable to decode `mimetype` from manifest!")
if pbHeader.getField(10, uploadedAt).isErr:
return failure("Unable to decode `uploadedAt` from manifest!")
let protected = pbErasureInfo.buffer.len > 0 let protected = pbErasureInfo.buffer.len > 0
var verifiable = false var verifiable = false
if protected: if protected:
@ -211,7 +203,6 @@ proc decode*(_: type Manifest, data: openArray[byte]): ?!Manifest =
var filenameOption = if filename.len == 0: string.none else: filename.some var filenameOption = if filename.len == 0: string.none else: filename.some
var mimetypeOption = if mimetype.len == 0: string.none else: mimetype.some var mimetypeOption = if mimetype.len == 0: string.none else: mimetype.some
var uploadedAtOption = if uploadedAt == 0: int64.none else: uploadedAt.int64.some
let self = let self =
if protected: if protected:
@ -229,7 +220,6 @@ proc decode*(_: type Manifest, data: openArray[byte]): ?!Manifest =
strategy = StrategyType(protectedStrategy), strategy = StrategyType(protectedStrategy),
filename = filenameOption, filename = filenameOption,
mimetype = mimetypeOption, mimetype = mimetypeOption,
uploadedAt = uploadedAtOption,
) )
else: else:
Manifest.new( Manifest.new(
@ -241,7 +231,6 @@ proc decode*(_: type Manifest, data: openArray[byte]): ?!Manifest =
codec = codec.MultiCodec, codec = codec.MultiCodec,
filename = filenameOption, filename = filenameOption,
mimetype = mimetypeOption, mimetype = mimetypeOption,
uploadedAt = uploadedAtOption,
) )
?self.verify() ?self.verify()

View File

@ -38,7 +38,6 @@ type Manifest* = ref object of RootObj
version: CidVersion # Cid version version: CidVersion # Cid version
filename {.serialize.}: ?string # The filename of the content uploaded (optional) filename {.serialize.}: ?string # The filename of the content uploaded (optional)
mimetype {.serialize.}: ?string # The mimetype of the content uploaded (optional) mimetype {.serialize.}: ?string # The mimetype of the content uploaded (optional)
uploadedAt {.serialize.}: ?int64 # The UTC creation timestamp in seconds
case protected {.serialize.}: bool # Protected datasets have erasure coded info case protected {.serialize.}: bool # Protected datasets have erasure coded info
of true: of true:
ecK: int # Number of blocks to encode ecK: int # Number of blocks to encode
@ -131,8 +130,6 @@ func filename*(self: Manifest): ?string =
func mimetype*(self: Manifest): ?string = func mimetype*(self: Manifest): ?string =
self.mimetype self.mimetype
func uploadedAt*(self: Manifest): ?int64 =
self.uploadedAt
############################################################ ############################################################
# Operations on block list # Operations on block list
############################################################ ############################################################
@ -172,7 +169,7 @@ func `==`*(a, b: Manifest): bool =
(a.treeCid == b.treeCid) and (a.datasetSize == b.datasetSize) and (a.treeCid == b.treeCid) and (a.datasetSize == b.datasetSize) and
(a.blockSize == b.blockSize) and (a.version == b.version) and (a.hcodec == b.hcodec) and (a.blockSize == b.blockSize) and (a.version == b.version) and (a.hcodec == b.hcodec) and
(a.codec == b.codec) and (a.protected == b.protected) and (a.filename == b.filename) and (a.codec == b.codec) and (a.protected == b.protected) and (a.filename == b.filename) and
(a.mimetype == b.mimetype) and (a.uploadedAt == b.uploadedAt) and ( (a.mimetype == b.mimetype) and (
if a.protected: if a.protected:
(a.ecK == b.ecK) and (a.ecM == b.ecM) and (a.originalTreeCid == b.originalTreeCid) and (a.ecK == b.ecK) and (a.ecM == b.ecM) and (a.originalTreeCid == b.originalTreeCid) and
(a.originalDatasetSize == b.originalDatasetSize) and (a.originalDatasetSize == b.originalDatasetSize) and
@ -202,9 +199,6 @@ func `$`*(self: Manifest): string =
if self.mimetype.isSome: if self.mimetype.isSome:
result &= ", mimetype: " & $self.mimetype result &= ", mimetype: " & $self.mimetype
if self.uploadedAt.isSome:
result &= ", uploadedAt: " & $self.uploadedAt
result &= ( result &= (
if self.protected: if self.protected:
", ecK: " & $self.ecK & ", ecM: " & $self.ecM & ", originalTreeCid: " & ", ecK: " & $self.ecK & ", ecM: " & $self.ecM & ", originalTreeCid: " &
@ -236,7 +230,6 @@ func new*(
protected = false, protected = false,
filename: ?string = string.none, filename: ?string = string.none,
mimetype: ?string = string.none, mimetype: ?string = string.none,
uploadedAt: ?int64 = int64.none,
): Manifest = ): Manifest =
T( T(
treeCid: treeCid, treeCid: treeCid,
@ -248,7 +241,6 @@ func new*(
protected: protected, protected: protected,
filename: filename, filename: filename,
mimetype: mimetype, mimetype: mimetype,
uploadedAt: uploadedAt,
) )
func new*( func new*(
@ -278,7 +270,6 @@ func new*(
protectedStrategy: strategy, protectedStrategy: strategy,
filename: manifest.filename, filename: manifest.filename,
mimetype: manifest.mimetype, mimetype: manifest.mimetype,
uploadedAt: manifest.uploadedAt,
) )
func new*(T: type Manifest, manifest: Manifest): Manifest = func new*(T: type Manifest, manifest: Manifest): Manifest =
@ -296,7 +287,6 @@ func new*(T: type Manifest, manifest: Manifest): Manifest =
protected: false, protected: false,
filename: manifest.filename, filename: manifest.filename,
mimetype: manifest.mimetype, mimetype: manifest.mimetype,
uploadedAt: manifest.uploadedAt,
) )
func new*( func new*(
@ -314,7 +304,6 @@ func new*(
strategy = SteppedStrategy, strategy = SteppedStrategy,
filename: ?string = string.none, filename: ?string = string.none,
mimetype: ?string = string.none, mimetype: ?string = string.none,
uploadedAt: ?int64 = int64.none,
): Manifest = ): Manifest =
Manifest( Manifest(
treeCid: treeCid, treeCid: treeCid,
@ -331,7 +320,6 @@ func new*(
protectedStrategy: strategy, protectedStrategy: strategy,
filename: filename, filename: filename,
mimetype: mimetype, mimetype: mimetype,
uploadedAt: uploadedAt,
) )
func new*( func new*(
@ -374,7 +362,6 @@ func new*(
verifiableStrategy: strategy, verifiableStrategy: strategy,
filename: manifest.filename, filename: manifest.filename,
mimetype: manifest.mimetype, mimetype: manifest.mimetype,
uploadedAt: manifest.uploadedAt,
) )
func new*(T: type Manifest, data: openArray[byte]): ?!Manifest = func new*(T: type Manifest, data: openArray[byte]): ?!Manifest =

View File

@ -391,7 +391,6 @@ proc store*(
codec = dataCodec, codec = dataCodec,
filename = filename, filename = filename,
mimetype = mimetype, mimetype = mimetype,
uploadedAt = now().utc.toTime.toUnix.some,
) )
without manifestBlk =? await self.storeManifest(manifest), err: without manifestBlk =? await self.storeManifest(manifest), err:

View File

@ -189,7 +189,7 @@ proc getCellHashes*[T, H](
blkIdx = blkIdx blkIdx = blkIdx
pos = i pos = i
trace "Getting block CID for tree at index" trace "Getting block CID for tree at index", index = blkIdx
without (_, tree) =? (await self.buildBlockTree(blkIdx, i)) and digest =? tree.root, without (_, tree) =? (await self.buildBlockTree(blkIdx, i)) and digest =? tree.root,
err: err:
error "Failed to get block CID for tree at index", err = err.msg error "Failed to get block CID for tree at index", err = err.msg

View File

@ -371,12 +371,6 @@ components:
nullable: true nullable: true
description: "The original mimetype of the uploaded content (optional)" description: "The original mimetype of the uploaded content (optional)"
example: image/png example: image/png
uploadedAt:
type: integer
format: int64
nullable: true
description: "The UTC upload timestamp in seconds"
example: 1729244192
Space: Space:
type: object type: object

View File

@ -38,7 +38,7 @@ twonodessuite "REST API":
check: check:
space.totalBlocks == 2 space.totalBlocks == 2
space.quotaMaxBytes == 8589934592.NBytes space.quotaMaxBytes == 8589934592.NBytes
space.quotaUsedBytes == 65598.NBytes space.quotaUsedBytes == 65592.NBytes
space.quotaReservedBytes == 12.NBytes space.quotaReservedBytes == 12.NBytes
test "node lists local files", twoNodesConfig: test "node lists local files", twoNodesConfig:
@ -232,8 +232,6 @@ twonodessuite "REST API":
check manifest["filename"].getStr() == "example.txt" check manifest["filename"].getStr() == "example.txt"
check manifest.hasKey("mimetype") == true check manifest.hasKey("mimetype") == true
check manifest["mimetype"].getStr() == "text/plain" check manifest["mimetype"].getStr() == "text/plain"
check manifest.hasKey("uploadedAt") == true
check manifest["uploadedAt"].getInt() > 0
test "node set the headers when for download", twoNodesConfig: test "node set the headers when for download", twoNodesConfig:
let headers = newHttpHeaders( let headers = newHttpHeaders(