MCPcopy
hub / github.com/minio/minio-go / main

Function main

examples/s3/setbucketnotification.go:32–93  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

30)
31
32func main() {
33 // Note: YOUR-ACCESSKEYID, YOUR-SECRETACCESSKEY and my-bucketname are
34 // dummy values, please replace them with original values.
35
36 // Requests are always secure (HTTPS) by default. Set secure=false to enable insecure (HTTP) access.
37 // This boolean value is the last argument for New().
38
39 // New returns an Amazon S3 compatible client object. API compatibility (v2 or v4) is automatically
40 // determined based on the Endpoint value.
41 s3Client, err := minio.New("s3.amazonaws.com", &minio.Options{
42 Creds: credentials.NewStaticV4("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", ""),
43 Secure: true,
44 })
45 if err != nil {
46 log.Fatalln(err)
47 }
48
49 // s3Client.TraceOn(os.Stderr)
50
51 // ARN represents a notification channel that needs to be created in your S3 provider
52 // (e.g. http://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)
53
54 // An example of an ARN:
55 // arn:aws:sns:us-east-1:804064459714:UploadPhoto
56 // ^ ^ ^ ^ ^
57 // Provider __| | | | |
58 // | Region Account ID |_ Notification Name
59 // Service _|
60 //
61 // You should replace YOUR-PROVIDER, YOUR-SERVICE, YOUR-REGION, YOUR-ACCOUNT-ID and YOUR-RESOURCE
62 // with actual values that you receive from the S3 provider
63
64 // Here you create a new Topic notification
65 topicArn := notification.NewArn("YOUR-PROVIDER", "YOUR-SERVICE", "YOUR-REGION", "YOUR-ACCOUNT-ID", "YOUR-RESOURCE")
66 topicConfig := notification.NewConfig(topicArn)
67 topicConfig.AddEvents(notification.ObjectCreatedAll, notification.ObjectRemovedAll)
68 topicConfig.AddFilterPrefix("photos/")
69 topicConfig.AddFilterSuffix(".jpg")
70
71 // Create a new Queue notification
72 queueArn := notification.NewArn("YOUR-PROVIDER", "YOUR-SERVICE", "YOUR-REGION", "YOUR-ACCOUNT-ID", "YOUR-RESOURCE")
73 queueConfig := notification.NewConfig(queueArn)
74 queueConfig.AddEvents(notification.ObjectRemovedAll)
75
76 // Create a new Lambda (CloudFunction)
77 lambdaArn := notification.NewArn("YOUR-PROVIDER", "YOUR-SERVICE", "YOUR-REGION", "YOUR-ACCOUNT-ID", "YOUR-RESOURCE")
78 lambdaConfig := notification.NewConfig(lambdaArn)
79 lambdaConfig.AddEvents(notification.ObjectRemovedAll)
80 lambdaConfig.AddFilterSuffix(".swp")
81
82 // Now, set all previously created notification configs
83 config := notification.Configuration{}
84 config.AddTopic(topicConfig)
85 config.AddQueue(queueConfig)
86 config.AddLambda(lambdaConfig)
87
88 err = s3Client.SetBucketNotification(context.Background(), "YOUR-BUCKET", config)
89 if err != nil {

Callers

nothing calls this directly

Calls 11

AddEventsMethod · 0.95
AddFilterPrefixMethod · 0.95
AddFilterSuffixMethod · 0.95
AddTopicMethod · 0.95
AddQueueMethod · 0.95
AddLambdaMethod · 0.95
NewStaticV4Function · 0.92
NewArnFunction · 0.92
NewConfigFunction · 0.92
SetBucketNotificationMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected