@@ -2,10 +2,12 @@ package cmds
2
2
3
3
import (
4
4
"context"
5
+ "crypto/sha256"
5
6
"errors"
6
7
"fmt"
7
8
"io"
8
9
"io/ioutil"
10
+ "strings"
9
11
"syscall"
10
12
"time"
11
13
@@ -241,6 +243,9 @@ var cmdCreate = &cli.Command{
241
243
}
242
244
243
245
r , w := io .Pipe ()
246
+ h := sha256 .New ()
247
+
248
+ tr := io .TeeReader (r , h )
244
249
245
250
e := export .NewExport (node , tsk , abi .ChainEpoch (flagStaterootCount ), true , w )
246
251
errCh := make (chan error )
@@ -298,7 +303,7 @@ var cmdCreate = &cli.Command{
298
303
Secure : false ,
299
304
})
300
305
301
- info , err := minioClient .PutObject (ctx , flagBucket , fmt .Sprintf ("%d.car" , height ), r , - 1 , minio.PutObjectOptions {})
306
+ info , err := minioClient .PutObject (ctx , flagBucket , fmt .Sprintf ("%d.car" , height ), tr , - 1 , minio.PutObjectOptions {})
302
307
if err != nil {
303
308
return err
304
309
}
@@ -313,13 +318,18 @@ var cmdCreate = &cli.Command{
313
318
"expiration" , info .Expiration ,
314
319
"expiration_rule_id" , info .ExpirationRuleID ,
315
320
)
321
+
322
+ info , err = minioClient .PutObject (ctx , flagBucket , fmt .Sprintf ("%s.sha256sum" , info .Key ), strings .NewReader (fmt .Sprintf ("%x" , h .Sum (nil ))), - 1 , minio.PutObjectOptions {})
323
+ if err != nil {
324
+ logger .Errorw ("failed to write sha256sum" , "object" , info .Key , "err" , err )
325
+ }
316
326
}
317
327
318
328
if err := <- errCh ; err != nil {
319
329
return err
320
330
}
321
331
322
- logger .Infow ("finished" )
332
+ logger .Infow ("finished" , "digiest" , fmt . Sprintf ( "%x" , h . Sum ( nil )) )
323
333
324
334
return nil
325
335
},
0 commit comments