Select Git revision
-
Francé Wilke authoredFrancé Wilke authored
s3.go 9.66 KiB
package s3
import (
"bytes"
"encoding/binary"
"fmt"
"net/url"
"path"
"strings"
"time"
"github.com/aws/aws-sdk-go/aws/awserr"
"gitlab.com/uafrica/go-utils/errors"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/s3"
"github.com/google/uuid"
)
// S3UploadResponse defines the structure of a standard JSON response to a PDF/CSV/etc request.
type S3UploadResponse struct {
URL string `json:"url"`
Filename string `json:"filename"`
Bucket string `json:"bucket"`
FileSize int `json:"file_size"`
}
type S3UploadSettings struct {
MimeType MIMEType
RetrieveSignedUrl bool
ExpiryDuration *time.Duration
AddContentDisposition bool
FileName string
}
type MIMEType string
const (
// MIMETypePDF defines the constant for the PDF MIME type.
MIMETypePDF MIMEType = "application/pdf"
// MIMETypeCSV defines the constant for the CSV MIME type.
MIMETypeCSV MIMEType = "text/csv"
// MIMETypeZIP defines the constant for the ZIP MIME type.
MIMETypeZIP MIMEType = "application/zip"
// MIMETypeJSON defines the constant for the JSON MIME type.
MIMETypeJSON MIMEType = "application/json"
// MIMETypeText defines the constant for the Plain text MIME type.
MIMETypeText MIMEType = "text/plain"
// MIMETypeImage defines the constant for the Image MIME type.
MIMETypeImage MIMEType = "image/*"
// MIMETypePNG defines the constant for the PNG MIME type.
MIMETypePNG MIMEType = "image/png"
// MIMETypeDefault defines the constant for the default MIME type.
MIMETypeDefault MIMEType = "application/octet-stream"
// TypeXLS defines the constant for the XLS MIME type.
MIMETypeXLS MIMEType = "application/vnd.ms-excel"
// TypeXLSX defines the constant for the XLSX MIME type.
MIMETypeXLSX MIMEType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)