(Duplicate) How to store files
SDK
Install the SDK package.
npm install @unique-nft/sdk
yarn add @unique-nft/sdk
In the baseUrl
parameter, you need to pass one of the following URLs depending on which parachain you want to work with.
Opal - https://rest.unique.network/opal
Quartz - https://rest.unique.network/quartz
Unique - https://rest.unique.network/unique
import Sdk from '@unique-nft/sdk';
const baseUrl = 'https://rest.unique.network/opal';
const main = async () => {
const uploadFile = async (file) => {
const options = { baseUrl };
const client = new Sdk(options);
// the "uploadZip" method can be used to upload archives
return client.ipfs.uploadFile({ file });
};
const form = document.querySelector('form');
form.addEventListener('submit', async (event) => {
event.preventDefault();
const file = document.querySelector('#nftFile').files[0];
const response = await uploadFile(file);
document.querySelector('#response').innerText = JSON.stringify(
response,
null,
4,
);
});
};
main();
REST libraries
import { createReadStream } from 'fs';
import FormData from 'form-data';
import fetch from 'node-fetch';
import mime from 'mime-types';
const filename = '<path_to_file>';
const URL = 'https://rest.unique.network/opal/v1/ipfs/upload-file';
const form = new FormData();
form.append(
'file',
createReadStream(filename),
{
contentType: mime.lookup(filename) as string,
filename,
},
);
const result = fetch(URL, { method: 'POST', body: form });
After uploading a file, we get a response from a server with an IPFS Cid:
{
"cid": "Qmc1Dj8m4z2vcojjJjp348FKffmSjopSFTgATpU8gUx5k1",
"fileUrl": "https://ipfs.unique.network/ipfs/Qmc1Dj8m4z2vcojjJjp348FKffmSjopSFTgATpU8gUx5k1"
}