# Create a manifest before transferring files

While the file transfer processes when getting content ingested in the platform usually include some degree of integrity verifications, it is considered a good practice (and we always recommend it here at LIBNOVA) to generate a manifest of the content to transfer, transfer it to the platform and then verify, platform-side, that the content in the platform is exactly the same as the content in the source of the transfer.

This process decreases the corruption and data loss risk, with the tradeoff of the additional time and effort to generate the manifest in advance to the file transfer.

### How to generate the manifest on Windows

{% hint style="warning" %}
Make sure that the tool you chose is safe to use, safe to be used in your environment, and it is approved that you use it.&#x20;

LIBNOVA has no relation with the creators/maintainers and we can't ensure that the tool  will work as expected, will fit its purpose, will cause no damage or will not contain malware.&#x20;

LIBNOVA can't accept any consequences on you using 3rd party software, and using them is a Customer responsibility.
{% endhint %}

There are multiple tools to create an integrity manifest in Windows, and any of them will work as long as it generates the manifest in the [MD5SUM format](https://en.wikipedia.org/wiki/Md5sum), but there are two open source tools that are easy to use and generate manifests fast: [HashCheck ](https://github.com/gurnec/HashCheck)and [OpenHashTab](https://github.com/namazso/OpenHashTab).

If you want to use Microsoft-provided tools, you can create your own scripts using [certutil](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil) or [FCIV](https://support.microsoft.com/en-gb/topic/d92a713f-d793-7bd8-b0a4-4db811e29559).

Both are shell extension that allows users to create manifests, instead of stand alone applications, but our preferred one is [HashCheck](https://github.com/gurnec/HashCheck) (even if it is older than OpenHashTab), so the process is explained in detail for it:

1\. Go to [https://github.com/gurnec/HashCheck](https://github.com/gurnec/HashCheck), download and install the tool.&#x20;

2\. Open the folder that contains the content you want to transfer. Right click and select the "Create Checksum File..."

![](https://3852577541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MgBifM53hLTD0q9p4fr%2Fuploads%2FKdxIILnyhqEw8BqrUlfK%2Fimage.png?alt=media\&token=7724cd34-1a2d-41e2-95d1-db0d0c2c5b35)

3\. The tool will request for you to chose the name of the manifest to generate. Save it outside the folder you are creating the manifest for, and make sure you select the MD5 type of file:

![](https://3852577541-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MgBifM53hLTD0q9p4fr%2Fuploads%2FLvo2iFB5TGmJJPpeX1Ti%2Fimage.png?alt=media\&token=9210a2fe-e96a-48a6-993c-089bad9efd90)

4\. The tool will create the manifest file (this may take a long time, depending on your volume of content, as every file needs to be analyzed in full in order to produce the manifest).

5\. When the process is complete, open your text file and make sure the relative path for every file matches the relative path to the file you plan for it to have in Go, so relative paths match. In other words, the path to each file when the file is uploaded in the platform should match the actual relative path for the file.

6\. Upload the file to the platform, select it and launch the "Validate MD5SUM manifest" function.

If the function does not show up in the Functions panel, please make a support request for the function to be enabled in your platform. Not all available functions are deployed to all instances.

### How to generate the manifest on Linux and Mac OS

To generate the MD5SUM manifest in Linux, you can use the md5sum command, that is available for many distributions.

Instructions on how to use it are available [here](https://en.wikipedia.org/wiki/Md5sum).

The command processes your content sequentially, which can be slow, but you can achieve better results parallelizing your workload with a little command line _Kung Fu_, like in the following example:

```
find /mnt/data -type f | parallel -j 64 md5sum > md5.txt
```

2\. The tool will create the manifest file (this may take a long time, depending on your volume of content, as every file needs to be analyzed in full in order to produce the manifest).

3\. When the process is complete, open your text file and make sure the relative path for every file matches the relative path to the file you plan for it to have in Go, so relative paths match. In other words, the path to each file when the file is uploaded in the platform should match the actual relative path for the file.

4\. Upload the file to the platform, select it and launch the "Validate MD5SUM manifest" function. If the function does not show up in the Functions panel, please make a support request for the function to be enabled in your platform.

{% hint style="info" %}
If the function does not show up in the Functions panel, please make a support request for the function to be enabled in your platform. Not all available functions are deployed to all instances.
{% endhint %}
