/

File Visibility & Permissions

ByteHide Storage allows you to control file visibility through public/private settings. By default, all files are private.

File Visibility

Default Behavior

All files are private by default:

// File is private by default
await storage.Set("config.json", config);

// Explicitly private (not necessary, but available)
await storage.SetPrivate().Set("config.json", config);

Making Files Public

Make specific files or directories public:

// Make a single file public
await storage
    .SetPublic()
    .Set("public/docs/api.json", apiDocs);

// Make all files in a directory public
var publicDocs = storage
    .In("documentation")
    .SetPublic();

await publicDocs.Set("guide.md", content);
await publicDocs.FromFile("tutorial.pdf", "local/guide.pdf");

Mixed Visibility

Override directory visibility for specific files:

// Public directory with a private file
var publicStorage = storage
    .In("public/documents")
    .SetPublic();

// Most files will be public
await publicStorage.Set("public-doc.pdf", publicDoc);

// But this one will be private
await publicStorage
    .SetPrivate()
    .Set("internal-doc.pdf", internalDoc);

Access Control

Public URLs

Get URLs for public files:

// Get public URL (only works for public files)
var publicUrl = await storage
    .In("public/images")
    .GetPublicUrl("logo.png");

// Check if file is public
var isPublic = await storage.IsPublic("public/docs/api.json");

Best Practices

Security Considerations

// Secure sensitive directories
var secureStorage = storage
    .In("sensitive")
    .Encrypt(); // Files are private by default

// Combine with encryption for maximum security
await secureStorage
    .EncryptWithQuantum()
    .Set("keys.dat", sensitiveData);

Security Note

  • Files are private by default - only use SetPublic() when necessary
  • Consider the implications of making entire directories public
  • Combine with encryption for sensitive data
  • Regularly audit your public files

Permission Management

Visibility Changes

Change file visibility after upload:

// Make existing file public
await storage.MakePublic("docs/public-guide.pdf");

// Make existing file private
await storage.MakePrivate("temp/exposed-file.txt");

Best Practices

  • Leverage the default private visibility
  • Only make files public when necessary
  • Use clear naming conventions for public files/directories
  • Document your visibility policies
  • Regularly review public files
Previous
Directory Management