> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload Files

> Upload files from URLs to Google Drive folders

The **Upload Files** node downloads files from URLs and uploads them directly to specified Google Drive folders. Perfect for automating file transfers, content archiving, and workflow automation. This is an **AI-powered node** that can understand natural language instructions.

***

## When to Use It

* Upload files from web URLs to Google Drive
* Archive web content and resources
* Transfer files between different platforms
* Batch upload multiple files automatically
* Create backup copies of online files
* Integrate file uploads into automated workflows
* Move files from temporary locations to permanent storage

***

## Inputs

| Field           | Type     | Required    | Description                                         |
| --------------- | -------- | ----------- | --------------------------------------------------- |
| **Folder ID**   | Text     | Yes         | Google Drive folder ID where files will be uploaded |
| **Upload Type** | Dropdown | Yes         | Single file or multiple files upload                |
| **File URL**    | URL      | Conditional | URL of file to upload (for single upload)           |
| **File Name**   | Text     | No          | Custom filename for single upload                   |
| **File URLs**   | List     | Conditional | List of URLs for multiple upload                    |

### Upload Type Options

| Type         | Description           | Use Case                   |
| ------------ | --------------------- | -------------------------- |
| **Single**   | Upload one file       | Individual file processing |
| **Multiple** | Upload multiple files | Batch file processing      |

### Folder ID Format

**Google Drive Folder ID:**

```
1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
```

**How to get Folder ID:**

1. Open the folder in Google Drive
2. Copy the ID from the URL: `https://drive.google.com/drive/folders/[FOLDER_ID]`
3. Or use the "Select Files" node to browse and get folder IDs

### Supported File Types

The node supports all file types that can be downloaded from URLs:

| Category      | Examples            | Notes            |
| ------------- | ------------------- | ---------------- |
| **Documents** | PDF, DOC, TXT, CSV  | Document files   |
| **Images**    | JPG, PNG, GIF, WebP | Image files      |
| **Videos**    | MP4, MOV, AVI       | Video files      |
| **Audio**     | MP3, WAV, AAC       | Audio files      |
| **Archives**  | ZIP, RAR, TAR       | Compressed files |
| **Data**      | JSON, XML, Excel    | Data files       |

***

## Output

Returns information about successfully uploaded files:

```json theme={"dark"}
{
  "uploaded_files": [
    {
      "file_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
      "name": "annual_report_2024.pdf",
      "folder_id": "1Cv4hJk2Lp9QrTfVbNmKoPlWxYzAaBcDe",
      "folder_name": "Company Reports",
      "source_url": "https://example.com/files/annual_report_2024.pdf",
      "file_size": "2.4 MB",
      "mime_type": "application/pdf",
      "upload_time": "2024-03-15T10:30:00Z"
    },
    {
      "file_id": "1Fg7hNm3Op4RrVgYcPqLkStXzBcDeFgHi",
      "name": "product_image_001.jpg",
      "folder_id": "1Cv4hJk2Lp9QrTfVbNmKoPlWxYzAaBcDe",
      "folder_name": "Company Reports",
      "source_url": "https://example.com/images/product_001.jpg",
      "file_size": "1.2 MB",
      "mime_type": "image/jpeg",
      "upload_time": "2024-03-15T10:30:15Z"
    }
  ],
  "summary": {
    "total_uploaded": 2,
    "total_size": "3.6 MB",
    "upload_duration": "45 seconds",
    "folder_info": {
      "folder_id": "1Cv4hJk2Lp9QrTfVbNmKoPlWxYzAaBcDe",
      "folder_name": "Company Reports"
    }
  }
}
```

### Output Fields:

| Field            | Description                                 |
| ---------------- | ------------------------------------------- |
| **file\_id**     | Unique Google Drive file ID                 |
| **name**         | Filename in Google Drive                    |
| **folder\_id**   | Destination folder ID                       |
| **folder\_name** | Destination folder name                     |
| **source\_url**  | Original URL where file was downloaded from |
| **file\_size**   | Size of uploaded file                       |
| **mime\_type**   | File type detected during upload            |
| **upload\_time** | When the file was uploaded                  |

***

## Credit Cost

* **Cost per file**: 1 credit per successfully uploaded file
* **Failed uploads**: No credits charged for failed uploads
* **Example**: Uploading 5 files = 5 credits (if all successful)

***

## Common Workflows

**Content Archiving:**

```
[Web Scrape URLs] → [Extract File Links] → [Upload Files] → [Organize in Drive] → [Share Links]
```

**Automated Backup:**

```
[Monitor File Sources] → [Detect New Files] → [Upload Files] → [Update Inventory] → [Send Notifications]
```

**Multi-Platform Transfer:**

```
[Export from Platform A] → [Get Download URLs] → [Upload Files] → [Import to Platform B]
```

**Batch Processing:**

```
[List File URLs] → [Filter by Type] → [Upload Files] → [Process in Drive] → [Generate Reports]
```

***

## Upload Scenarios

### Single File Upload

**Upload one specific file:**

```
Upload Type: Single
File URL: https://example.com/document.pdf
File Name: important_document.pdf (optional)
Folder ID: 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
```

### Multiple File Upload

**Upload several files at once:**

```
Upload Type: Multiple
File URLs: [
  "https://example.com/file1.pdf",
  "https://example.com/file2.jpg",
  "https://example.com/file3.docx"
]
Folder ID: 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
```

### Custom Naming

**Upload with custom filename:**

```
Upload Type: Single
File URL: https://example.com/temp/abc123.pdf
File Name: Q4_Financial_Report.pdf
Result: File saved as "Q4_Financial_Report.pdf" in Drive
```

***

## Use Cases

### Website Content Archiving

**Archive important web resources:**

```
- Collect URLs of important documents
- Upload files to organized Drive folders
- Create permanent backup of web content
- Share archived content with team
```

### Product Media Management

**Manage product images and videos:**

```
- Get product media URLs from suppliers
- Upload to product-specific Drive folders
- Organize by product categories
- Use in marketing materials and catalogs
```

### Report Distribution

**Distribute generated reports:**

```
- Generate reports in external systems
- Upload report files to shared Drive folders
- Notify stakeholders of new reports
- Maintain organized report archive
```

### Data Pipeline Integration

**Integrate file uploads in data workflows:**

```
- Export data files from databases
- Upload processed files to Drive
- Make files available for further processing
- Track file processing status
```

***

## File Handling

### Supported URL Formats

```
✅ Direct file URLs: https://example.com/file.pdf
✅ CDN URLs: https://cdn.example.com/images/photo.jpg
✅ Temporary URLs: https://temp.example.com/download/abc123
✅ API endpoints: https://api.example.com/files/download?id=123
```

### Automatic File Detection

* **MIME type**: Automatically detected from server response
* **File extension**: Preserved from original URL when possible
* **File size**: Calculated during download
* **Content validation**: Basic validation to ensure file integrity

### Custom Naming Rules

* **Single upload**: Use custom filename if provided
* **Multiple upload**: Use original filenames from URLs
* **Conflict handling**: Google Drive handles duplicate names automatically
* **Invalid characters**: Automatically cleaned from filenames

***

## Error Handling

### Common Issues and Solutions

**Invalid Folder ID:**

```
Error: "Folder not found or not accessible"
Solution: Verify folder ID and ensure proper permissions
```

**Invalid URL:**

```
Error: "Failed to download file from URL"
Solution: Check URL accessibility and format
```

**File Too Large:**

```
Error: "File exceeds size limits"
Solution: Use smaller files or split large files
```

**Network Issues:**

```
Error: "Connection timeout"
Solution: Retry upload or check network connectivity
```

### Partial Upload Handling

* **Mixed results**: Some files upload successfully, others fail
* **Detailed error reporting**: Specific error for each failed file
* **Credit charging**: Only successful uploads are charged
* **Retry capability**: Can retry failed uploads separately

***

## Tips

**URL Management:**

* **Test URLs manually** before bulk uploads to ensure accessibility
* **Use direct file URLs** when possible for better reliability
* **Check URL expiration** for temporary download links
* **Verify file permissions** on source servers

**Folder Organization:**

* **Create organized folder structure** before uploading
* **Use descriptive folder names** for easy identification
* **Set appropriate permissions** on destination folders
* **Consider folder hierarchy** for large file collections

**Performance Optimization:**

* **Batch similar files** in single upload operations
* **Avoid very large files** (>100MB) for better performance
* **Use multiple uploads** for very large batches (>50 files)
* **Monitor upload progress** for long-running operations

**Workflow Integration:**

* **Combine with file selection** to organize uploads dynamically
* **Use with folder creation** to create structured storage
* **Connect to notification systems** for upload confirmations
* **Feed file IDs** to subsequent operations for further processing

**Error Prevention:**

* **Validate URLs** before starting uploads
* **Check available storage** in Google Drive
* **Test with small batches** before large uploads
* **Set up error handling** for production workflows
