s3.proto 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. syntax = "proto3";
  2. package messaging_pb;
  3. option go_package = "github.com/seaweedfs/seaweedfs/weed/pb/s3_pb";
  4. option java_package = "seaweedfs.client";
  5. option java_outer_classname = "S3Proto";
  6. //////////////////////////////////////////////////
  7. service SeaweedS3 {
  8. rpc Configure (S3ConfigureRequest) returns (S3ConfigureResponse) {
  9. }
  10. }
  11. //////////////////////////////////////////////////
  12. message S3ConfigureRequest {
  13. bytes s3_configuration_file_content = 1;
  14. }
  15. message S3ConfigureResponse {
  16. }
  17. message S3CircuitBreakerConfig {
  18. S3CircuitBreakerOptions global=1;
  19. map<string, S3CircuitBreakerOptions> buckets= 2;
  20. }
  21. message S3CircuitBreakerOptions {
  22. bool enabled=1;
  23. map<string, int64> actions = 2;
  24. }
  25. //////////////////////////////////////////////////
  26. // Bucket Metadata
  27. message CORSRule {
  28. repeated string allowed_headers = 1;
  29. repeated string allowed_methods = 2;
  30. repeated string allowed_origins = 3;
  31. repeated string expose_headers = 4;
  32. int32 max_age_seconds = 5;
  33. string id = 6;
  34. }
  35. message CORSConfiguration {
  36. repeated CORSRule cors_rules = 1;
  37. }
  38. message BucketMetadata {
  39. map<string, string> tags = 1;
  40. CORSConfiguration cors = 2;
  41. EncryptionConfiguration encryption = 3;
  42. }
  43. message EncryptionConfiguration {
  44. string sse_algorithm = 1; // "AES256" or "aws:kms"
  45. string kms_key_id = 2; // KMS key ID (optional for aws:kms)
  46. bool bucket_key_enabled = 3; // S3 Bucket Keys optimization
  47. }