cli: Allow to split object on the client side #471
No reviewers
Labels
No labels
P0
P1
P2
P3
badger
frostfs-adm
frostfs-cli
frostfs-ir
frostfs-lens
frostfs-node
good first issue
triage
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No milestone
No project
No assignees
4 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-node#471
Loading…
Reference in a new issue
No description provided.
Delete branch "acid-ant/frostfs-node:feature/cut-obj-client"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Close #483
Signed-off-by: Anton Nikiforov an.nikiforov@yadro.com
0935281e49
to990a306e82
990a306e82
toc24e94cb1b
c24e94cb1b
to9806392642
WIP: cli: Allow to split object on the client sideto cli: Allow to split object on the client sideacid-ant referenced this pull request from TrueCloudLab/xk6-frostfs2023-06-29 08:14:55 +00:00
9806392642
tob755f02a6d
b755f02a6d
tof02295d8f7
Fixed linter errors.
f02295d8f7
to12f6a9443e
@ -363,0 +370,4 @@
func (x *PutObjectPrm) convertToSDKPrm(ctx context.Context) (client.PrmObjectPutInit, error) {
var putPrm client.PrmObjectPutInit
if x.sessionToken != nil {
putPrm.WithinSession(*x.sessionToken)
We might avoid creating a session in this case: it is needed when object header is changed, not the case here.
Looks like we don't need to read it at all when generating header locally.
@ -54,6 +55,7 @@ func initObjectPutCmd() {
flags.Bool("disable-timestamp", false, "Do not set well-known timestamp attribute")
flags.Uint64VarP(&putExpiredOn, commonflags.ExpireAt, "e", 0, "The last active epoch in the life of the object")
flags.Bool(noProgressFlag, false, "Do not show progress bar")
flags.Bool(splitLocallyFlag, false, "Split big object on the client side")
It's not only this, small objects are not split but prepared.
May be "prepare object header(s) on the client"?
Right, how about this:
Generate object header on the client side (for big object - split locally too)
and option name -
gen-locally
12f6a9443e
to27feeacf3c
@ -363,0 +391,4 @@
}
putPrm.WithObjectMaxSize(res.Info().MaxObjectSize())
putPrm.WithEpochSource(epochSource(res.Info().CurrentEpoch()))
putPrm.WithoutHomomorphicHash(true)
This is also a network setting, not a constant.
My fault, fixed.
27feeacf3c
to2684eca6b2
2684eca6b2
tofa918e69bd
@ -54,6 +55,7 @@ func initObjectPutCmd() {
flags.Bool("disable-timestamp", false, "Do not set well-known timestamp attribute")
flags.Uint64VarP(&putExpiredOn, commonflags.ExpireAt, "e", 0, "The last active epoch in the life of the object")
flags.Bool(noProgressFlag, false, "Do not show progress bar")
flags.Bool(generateLocallyFlag, false, "Generate object header on the client side (for big object - split locally too)")
Maybe
prepare-locally
?Why not, updated.
fa918e69bd
to4c248d573e