The example implementations below may be helpful when performing certain API operations.
File Uploads
Consider using the following code examples when uploading files.
Generate the upload checksum
Generating the checksum is required before uploading a file.
import { createSHA256 } from "hash-wasm";
export const generateSHA256Checksum = async (file: File) => {
const sha256 = await createSHA256();
const chunkSize = 10 * 1024 * 1024; // 10 MB
const fileSize = file.size;
for (let offset = 0; offset < fileSize; offset += chunkSize) {
const chunk = file.slice(offset, offset + chunkSize);
const buffer = await chunk.arrayBuffer();
sha256.update(new Uint8Array(buffer));
}
const hashBuffer = sha256.digest("binary");
return btoa(String.fromCharCode.apply(null, Array.from(hashBuffer)));
}import hashlib
import base64
from pathlib import Path
def generate_sha256_checksum(file_path: Path) -> str:
with file_path.open("rb") as f:
hash_digest = hashlib.file_digest(f, "sha256").digest()
return base64.b64encode(hash_digest).decode('utf-8')Encode the file name
The encoded file name is required when uploading a file.
const encodedFileName = encodeURIComponent("file_name123%€.wav")import urllib.parse
encoded_file_name = urllib.parse.quote("file_name123%€.wav", safe="-.!~*'()")