Generate CAR Files

A CAR file is an independent unit to be sent to storage providers, swan-client provides four different ways to generate CAR files, and the CAR files will be imported to the lotus.

Graphsplit

🔔 This option can split a file under the source directory or the files in a whole directory to one or more car file(s) in the output directory.

swan-client generate-car graphsplit car --input-dir [input_files_dir] --out-dir [car_files_output_dir]

OPTIONS:
   --input-dir value, -i value       directory where source file(s) is(are) in
   --out-dir value, -o value         directory where CAR file(s) will be generated (default: "/tmp/tasks")
   --import                          whether to import CAR files to lotus (default: true)
   --parallel value                  number goroutines run when building ipld nodes (default: 5)
   --slice-size value, --size value  bytes of each piece (default: 17179869184)
   --parent-path                     generate CAR files based on the whole folder (default: true)

Files generated after this step:

  • manifest.csv: A metadata file generated by graphsplit API

  • car.json: contains information for both source files and CAR files

  • car.csv: contains information for both source files and CAR files

  • [dataCID].car: if --parent-path=true is set, the CAR files are generated based on the whole directory, otherwise based on each file according to the file size and --slice-size

Credits should be given to FileDrive Team. More information can be found here.

Lotus API

🔔 This option will generate a CAR file for each file in --input-dir.

🔔 A running Lotus node is required.

swan-client generate-car lotus --input-dir [input_files_dir] --out-dir [car_files_output_dir]

OPTIONS:
   --input-dir value, -i value  directory where source file(s) is(are) in
   --out-dir value, -o value    directory where CAR file(s) will be generated (default: "/tmp/tasks")
   --import                     whether to import CAR files to lotus (default: true)

Files generated after this step:

  • car.json: contains information for both source files and CAR files

  • car.csv: contains information for both source files and CAR files

  • [source-file-name].car: each source file has a related CAR file

IPFS API

🔔 This option will merge files under the source directory to one CAR file in the output directory using IPFS API.

🔔 A running IPFS node is required.

swan-client generate-car ipfs --input-dir [input_files_dir] --out-dir [car_file_output_dir]

OPTIONS:
   --input-dir value, -i value  directory where source file(s) is(are) in
   --out-dir value, -o value    directory where CAR file(s) will be generated (default: "/tmp/tasks")
   --import                     whether to import CAR files to lotus (default: true)

Files generated after this step:

  • car.json: contains information for the CAR file

  • car.csv: contains information for the CAR file

  • [dataCID].car: the source file(s) will be merged into this CAR file

ipfs-car

🔔 ipfs-car package is required: sudo npm install -g ipfs-car

🔔 This option will merge files under the source directory to one CAR file in the output directory using the ipfs-car command.

swan-client generate-car ipfs-car --input-dir [input_files_dir] --out-dir [car_file_output_dir]

OPTIONS:
   --input-dir value, -i value  directory where source file(s) is(are) in
   --out-dir value, -o value    directory where CAR file(s) will be generated (default: "/tmp/tasks")
   --import                     whether to import CAR files to lotus (default: true)

Files generated after this step:

  • car.json: contains information for the CAR file

  • car.csv: contains information for the CAR file

  • [source-files-dir-name].car: the source file(s) will be merged into this CAR file

Last updated