Temporal Files & Expiration
ByteHide Storage allows you to control temporary access to files and set expiration times for content.
Temporary Access
Generate Temporary URLs
Create time-limited access to private files:
// Generate URL that expires in 1 hour
var tempUrl = await storage
.GetTemporaryUrl(
"private/documents/report.pdf",
TimeSpan.FromHours(1)
);
// Custom expiration date
var customUrl = await storage
.GetTemporaryUrl(
"secure/contract.pdf",
DateTime.UtcNow.AddDays(7)
);
Temporary Access Settings
Configure temporary access behavior:
// Short-lived access (15 minutes)
var quickAccess = await storage
.GetTemporaryUrl(
"temp/preview.pdf",
TimeSpan.FromMinutes(15)
);
// Extended access (30 days)
var extendedAccess = await storage
.GetTemporaryUrl(
"archive/2024/january.zip",
TimeSpan.FromDays(30)
);
File Expiration
Upload with Expiration
Set expiration time when uploading files:
// File expires in 24 hours
await storage
.SetExpiration(TimeSpan.FromHours(24))
.Set("temp/daily-report.pdf", reportData);
// File expires at specific date
await storage
.SetExpiration(DateTime.UtcNow.AddMonths(1))
.Set("contracts/draft.pdf", contractData);
Directory Expiration
Apply expiration to all files in a directory:
// All files expire in 7 days
var tempStorage = storage
.In("temporary")
.SetExpiration(TimeSpan.FromDays(7));
await tempStorage.Set("file1.txt", data1);
await tempStorage.Set("file2.txt", data2);
Best Practices
Security Considerations
// Combine with encryption for sensitive temporary files
await storage
.Encrypt()
.SetExpiration(TimeSpan.FromHours(1))
.Set("secure/temp.dat", sensitiveData);
// Use short expiration for sensitive content
var secureUrl = await storage
.GetTemporaryUrl(
"confidential/doc.pdf",
TimeSpan.FromMinutes(30)
);
Security Note
- Use the shortest practical expiration time
- Consider your application's security requirements
- Monitor and audit temporary access usage
- Remember that expired files are automatically deleted
Usage Patterns
// Temporary file upload area
var uploadStorage = storage
.In("uploads/temp")
.SetExpiration(TimeSpan.FromHours(24));
// Download area with extended access
var downloadUrl = await storage
.GetTemporaryUrl(
"downloads/large-file.zip",
TimeSpan.FromDays(2)
);
Best Practices
- Use clear naming conventions for temporary files
- Organize temporary files in dedicated directories
- Document expiration policies
- Consider implementing cleanup notifications