This document contains examples of how to use the SeaweedFS Policy Engine.
The examples in examples.go demonstrate various policy configurations and usage patterns. The examples file is excluded from production builds using build tags to reduce binary size.
If you need to use the examples during development or testing, you can:
//go:build ignore and // +build ignore lines from examples.goThe examples file includes:
The examples file provides helper functions:
GetAllExamples(): Returns all example policiesValidateExamplePolicies(): Validates all examplesGetExamplePolicy(name): Gets a specific exampleCreateExamplePolicyDocument(name): Creates a policy documentPrintExamplePolicyPretty(name): Pretty-prints an exampleExampleUsage(): Shows basic usage patternsExampleLegacyIntegration(): Shows legacy integrationExampleConditions(): Shows condition usageExampleMigrationStrategy(): Shows migration approach// Remove build tags from examples.go, then:
import "github.com/seaweedfs/seaweedfs/weed/s3api/policy_engine"
// Use examples
examples := policy_engine.GetAllExamples()
policy, err := policy_engine.GetExamplePolicy("read-only-user")
The examples are excluded from production builds to keep binary size minimal. They are available for development and testing purposes only.