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

Function main

examples/s3/fputencrypted-object.go:32–64  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

30)
31
32func main() {
33 // Note: YOUR-ACCESSKEYID, YOUR-SECRETACCESSKEY, my-testfile, my-bucketname and
34 // my-objectname are 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 filePath := "my-testfile" // Specify a local file that we will upload
50 bucketname := "my-bucketname" // Specify a bucket name - the bucket must already exist
51 objectName := "my-objectname" // Specify a object name
52 password := "correct horse battery staple" // Specify your password. DO NOT USE THIS ONE - USE YOUR OWN.
53
54 // New SSE-C where the cryptographic key is derived from a password and the objectname + bucketname as salt
55 encryption := encrypt.DefaultPBKDF([]byte(password), []byte(bucketname+objectName))
56
57 // Encrypt file content and upload to the server
58 uploadedInfo, err := s3Client.FPutObject(context.Background(), bucketname, objectName, filePath, minio.PutObjectOptions{ServerSideEncryption: encryption})
59 if err != nil {
60 log.Fatalln(err)
61 }
62
63 log.Println("Uploaded", "my-objectname:", uploadedInfo)
64}

Callers

nothing calls this directly

Calls 2

NewStaticV4Function · 0.92
FPutObjectMethod · 0.80

Tested by

no test coverage detected