| 145 | } |
| 146 | |
| 147 | func (b *Backend) Upload(ctx context.Context, r io.Reader, resource *pb.CASResource) error { |
| 148 | key, err := b.keyFor(ctx, resource.Digest) |
| 149 | if err != nil { |
| 150 | return err |
| 151 | } |
| 152 | uploader := manager.NewUploader(b.s3Client) |
| 153 | _, err = uploader.Upload(ctx, &s3.PutObjectInput{ |
| 154 | Bucket: aws.String(b.creds.AccessPointARN), |
| 155 | Key: aws.String(key), |
| 156 | Body: r, |
| 157 | Metadata: map[string]string{ |
| 158 | annotationNameAuthor: backend.AuthorAnnotation, |
| 159 | annotationNameFilename: resource.FileName, |
| 160 | }, |
| 161 | }) |
| 162 | if err != nil { |
| 163 | return fmt.Errorf("uploading to access point: %w", err) |
| 164 | } |
| 165 | return nil |
| 166 | } |
| 167 | |
| 168 | func (b *Backend) Describe(ctx context.Context, digest string) (*pb.CASResource, error) { |
| 169 | key, err := b.keyFor(ctx, digest) |