| Option | Type | Default | Description |
|----------------------|----------|------------|-------------|
| chunkSize | integer | 5242880 | 5 MB (min for S3) |
| maxConcurrent | integer | 4 | Parallel part uploads |
| maxRetries | integer | 5 | Per-chunk retry attempts |
| retryDelay | integer | 1000 | Initial retry delay (ms) |
| uploadUrl | string | https://s3.us.archive.org | S3 endpoint |
| accessKey | string | (derived from Archive session) | S3 access key |
| secretKey | string | (derived from Archive session) | S3 secret (client-side HMAC) |
| storageKeyPrefix | string | 'ia_uploader_' | Local storage prefix |
| allowMimeTypes | array | [] (all) | Restrict by MIME type |
| maxFileSize | integer | 107374182400 | 100 GB |
Security note: Secret keys are never sent plaintext; v1.7.0 signs requests client-side using HMAC-SHA1 (AWS Signature Version 2) or AWS4-HMAC-SHA256 (optional).
// Simplified logic of 1.7.0 function uploadFile(file) let chunkSize = 10 * 1024 * 1024; // 10MB let chunks = Math.ceil(file.size / chunkSize);for (let i = 0; i < chunks; i++) let chunk = file.slice(i * chunkSize, (i+1) * chunkSize); let md5 = calculateMD5(chunk);
fetch('/upload/' + file.name + '?part=' + i, method: 'PUT', body: chunk, headers: 'X-MD5': md5 ).then(retryOnFailure);
If you are looking to use this specific version, here is the workflow you will encounter on archive.org.
Step 1: Navigate to "Upload" Go to archive.org and click "Upload" in the top toolbar. You must be logged in (creating an account is free).
Step 2: Identify the Uploader Version
Once the interface loads, you might see a small gear icon or a text link that says "Show details." Click this. Buried in the metadata, you will likely see Uploader: HTML5 Uploader 1.7.0. If you see a newer number (e.g., 1.10.0), the functionality is similar, but 1.7.0 remains the baseline standard.
Step 3: Add Files You have three options: internet archive html5 uploader 1.7.0
Step 4: Set Metadata (Crucial) While files upload, you must fill out:
Step 5: Monitor the Queue Version 1.7.0 displays a color-coded queue:
Step 6: Finalize Once all files say "Done," click the big green "Create Item" button. The server processes the item (deriving thumbnails, converting video formats), which may take minutes or hours.
<input type="file" id="fileInput" multiple> <div id="progress"></div><script src="https://archive.org/includes/html5uploader/1.7.0/html5uploader.js"></script> <script> var uploader = new HTML5Uploader( uploadUrl: 'https://s3.us.archive.org', chunkSize: 10 * 1024 * 1024, // 10 MB maxConcurrent: 3 ); | Option | Type | Default | Description
uploader.on('uploadprogress', function(fileId, loaded, total) document.getElementById('progress').innerHTML = 'Uploaded ' + Math.round(loaded/total*100) + '%'; );
uploader.on('uploadcomplete', function(fileId, url) console.log('File available at:', url); );
document.getElementById('fileInput').addEventListener('change', function(e) Array.from(e.target.files).forEach(function(file) uploader.addFile(file, description: 'My upload' ); ); uploader.start(); ); </script>
| Version | Flash fallback | Resumable | Chunked upload | Parallel parts | IndexedDB resume | |---------|----------------|-----------|----------------|----------------|------------------| | 0.9.x | Yes | No | No | No | No | | 1.0.0 | No | Partial | Yes (fixed 5MB)| Yes (2 parts) | No | | 1.7.0 | No | Yes | Yes (config) | Yes (config)| Yes |
Use the official Internet Archive command-line client (still works flawlessly):
pip install internetarchive
ia upload <identifier> /path/to/file.mp4 --metadata="title:My File"