github.com/aavshr/aws-sdk-go@v1.41.3/service/s3/doc_custom.go (about) 1 // Upload Managers 2 // 3 // The s3manager package's Uploader provides concurrent upload of content to S3 4 // by taking advantage of S3's Multipart APIs. The Uploader also supports both 5 // io.Reader for streaming uploads, and will also take advantage of io.ReadSeeker 6 // for optimizations if the Body satisfies that type. Once the Uploader instance 7 // is created you can call Upload concurrently from multiple goroutines safely. 8 // 9 // // The session the S3 Uploader will use 10 // sess := session.Must(session.NewSession()) 11 // 12 // // Create an uploader with the session and default options 13 // uploader := s3manager.NewUploader(sess) 14 // 15 // f, err := os.Open(filename) 16 // if err != nil { 17 // return fmt.Errorf("failed to open file %q, %v", filename, err) 18 // } 19 // 20 // // Upload the file to S3. 21 // result, err := uploader.Upload(&s3manager.UploadInput{ 22 // Bucket: aws.String(myBucket), 23 // Key: aws.String(myString), 24 // Body: f, 25 // }) 26 // if err != nil { 27 // return fmt.Errorf("failed to upload file, %v", err) 28 // } 29 // fmt.Printf("file uploaded to, %s\n", aws.StringValue(result.Location)) 30 // 31 // See the s3manager package's Uploader type documentation for more information. 32 // https://docs.aws.amazon.com/sdk-for-go/api/service/s3/s3manager/#Uploader 33 // 34 // Download Manager 35 // 36 // The s3manager package's Downloader provides concurrently downloading of Objects 37 // from S3. The Downloader will write S3 Object content with an io.WriterAt. 38 // Once the Downloader instance is created you can call Download concurrently from 39 // multiple goroutines safely. 40 // 41 // // The session the S3 Downloader will use 42 // sess := session.Must(session.NewSession()) 43 // 44 // // Create a downloader with the session and default options 45 // downloader := s3manager.NewDownloader(sess) 46 // 47 // // Create a file to write the S3 Object contents to. 48 // f, err := os.Create(filename) 49 // if err != nil { 50 // return fmt.Errorf("failed to create file %q, %v", filename, err) 51 // } 52 // 53 // // Write the contents of S3 Object to the file 54 // n, err := downloader.Download(f, &s3.GetObjectInput{ 55 // Bucket: aws.String(myBucket), 56 // Key: aws.String(myString), 57 // }) 58 // if err != nil { 59 // return fmt.Errorf("failed to download file, %v", err) 60 // } 61 // fmt.Printf("file downloaded, %d bytes\n", n) 62 // 63 // See the s3manager package's Downloader type documentation for more information. 64 // https://docs.aws.amazon.com/sdk-for-go/api/service/s3/s3manager/#Downloader 65 // 66 // Automatic URI cleaning 67 // 68 // Interacting with objects whose keys contain adjacent slashes (e.g. bucketname/foo//bar/objectname) 69 // requires setting DisableRestProtocolURICleaning to true in the aws.Config struct 70 // used by the service client. 71 // 72 // svc := s3.New(sess, &aws.Config{ 73 // DisableRestProtocolURICleaning: aws.Bool(true), 74 // }) 75 // out, err := svc.GetObject(&s3.GetObjectInput { 76 // Bucket: aws.String("bucketname"), 77 // Key: aws.String("//foo//bar//moo"), 78 // }) 79 // 80 // Get Bucket Region 81 // 82 // GetBucketRegion will attempt to get the region for a bucket using a region 83 // hint to determine which AWS partition to perform the query on. Use this utility 84 // to determine the region a bucket is in. 85 // 86 // sess := session.Must(session.NewSession()) 87 // 88 // bucket := "my-bucket" 89 // region, err := s3manager.GetBucketRegion(ctx, sess, bucket, "us-west-2") 90 // if err != nil { 91 // if aerr, ok := err.(awserr.Error); ok && aerr.Code() == "NotFound" { 92 // fmt.Fprintf(os.Stderr, "unable to find bucket %s's region not found\n", bucket) 93 // } 94 // return err 95 // } 96 // fmt.Printf("Bucket %s is in %s region\n", bucket, region) 97 // 98 // See the s3manager package's GetBucketRegion function documentation for more information 99 // https://docs.aws.amazon.com/sdk-for-go/api/service/s3/s3manager/#GetBucketRegion 100 // 101 // S3 Crypto Client 102 // 103 // The s3crypto package provides the tools to upload and download encrypted 104 // content from S3. The Encryption and Decryption clients can be used concurrently 105 // once the client is created. 106 // 107 // See the s3crypto package documentation for more information. 108 // https://docs.aws.amazon.com/sdk-for-go/api/service/s3/s3crypto/ 109 // 110 package s3