github.com/Jeffail/benthos/v3@v3.65.0/lib/output/gcp_cloud_storage.go (about) 1 package output 2 3 import ( 4 "github.com/Jeffail/benthos/v3/lib/message/batch" 5 "google.golang.org/api/googleapi" 6 ) 7 8 const ( 9 // GCPCloudStorageErrorIfExistsCollisionMode - error-if-exists 10 GCPCloudStorageErrorIfExistsCollisionMode = "error-if-exists" 11 12 // GCPCloudStorageAppendCollisionMode - append 13 GCPCloudStorageAppendCollisionMode = "append" 14 15 // GCPCloudStorageIgnoreCollisionMode - ignore 16 GCPCloudStorageIgnoreCollisionMode = "ignore" 17 18 // GCPCloudStorageOverwriteCollisionMode - overwrite 19 GCPCloudStorageOverwriteCollisionMode = "overwrite" 20 ) 21 22 // GCPCloudStorageConfig contains configuration fields for the GCP Cloud Storage 23 // output type. 24 type GCPCloudStorageConfig struct { 25 Bucket string `json:"bucket" yaml:"bucket"` 26 Path string `json:"path" yaml:"path"` 27 ContentType string `json:"content_type" yaml:"content_type"` 28 ContentEncoding string `json:"content_encoding" yaml:"content_encoding"` 29 ChunkSize int `json:"chunk_size" yaml:"chunk_size"` 30 MaxInFlight int `json:"max_in_flight" yaml:"max_in_flight"` 31 Batching batch.PolicyConfig `json:"batching" yaml:"batching"` 32 CollisionMode string `json:"collision_mode" yaml:"collision_mode"` 33 } 34 35 // NewGCPCloudStorageConfig creates a new Config with default values. 36 func NewGCPCloudStorageConfig() GCPCloudStorageConfig { 37 return GCPCloudStorageConfig{ 38 Bucket: "", 39 Path: `${!count("files")}-${!timestamp_unix_nano()}.txt`, 40 ContentType: "application/octet-stream", 41 ContentEncoding: "", 42 ChunkSize: googleapi.DefaultUploadChunkSize, 43 MaxInFlight: 1, 44 Batching: batch.NewPolicyConfig(), 45 CollisionMode: GCPCloudStorageOverwriteCollisionMode, 46 } 47 }