mirror of
https://github.com/gmemstr/sliproad.git
synced 2024-09-19 16:11:11 +01:00
Actually fix overlapping S3 providers.
This commit is contained in:
parent
e7f3d5402e
commit
59cfb6656f
22
files/s3.go
22
files/s3.go
|
@ -15,9 +15,6 @@ import (
|
||||||
"github.com/aws/aws-sdk-go/service/s3/s3manager"
|
"github.com/aws/aws-sdk-go/service/s3/s3manager"
|
||||||
)
|
)
|
||||||
|
|
||||||
var svc s3.S3
|
|
||||||
var sess session.Session
|
|
||||||
|
|
||||||
type S3Provider struct {
|
type S3Provider struct {
|
||||||
FileProvider
|
FileProvider
|
||||||
Region string
|
Region string
|
||||||
|
@ -25,6 +22,9 @@ type S3Provider struct {
|
||||||
Endpoint string
|
Endpoint string
|
||||||
KeyID string
|
KeyID string
|
||||||
KeySecret string
|
KeySecret string
|
||||||
|
|
||||||
|
svc s3.S3
|
||||||
|
sess session.Session
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup runs when the application starts up, and allows for things like authentication.
|
// Setup runs when the application starts up, and allows for things like authentication.
|
||||||
|
@ -40,17 +40,17 @@ func (s *S3Provider) Setup(args map[string]string) bool {
|
||||||
config.Endpoint = &s.Endpoint
|
config.Endpoint = &s.Endpoint
|
||||||
}
|
}
|
||||||
ss, err := session.NewSession(config)
|
ss, err := session.NewSession(config)
|
||||||
sess = *ss
|
s.sess = *ss
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
svc = *s3.New(&sess)
|
s.svc = *s3.New(&s.sess)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDirectory fetches a directory's contents.
|
// GetDirectory fetches a directory's contents.
|
||||||
func (s *S3Provider) GetDirectory(path string) Directory {
|
func (s *S3Provider) GetDirectory(path string) Directory {
|
||||||
resp, err := svc.ListObjectsV2(&s3.ListObjectsV2Input{Bucket: aws.String(s.Bucket)})
|
resp, err := s.svc.ListObjectsV2(&s3.ListObjectsV2Input{Bucket: aws.String(s.Bucket)})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
return Directory{}
|
return Directory{}
|
||||||
|
@ -78,7 +78,7 @@ func (s *S3Provider) GetDirectory(path string) Directory {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *S3Provider) SendFile(path string) (stream io.Reader, contenttype string, err error) {
|
func (s *S3Provider) SendFile(path string) (stream io.Reader, contenttype string, err error) {
|
||||||
req, err := svc.GetObject(&s3.GetObjectInput{
|
req, err := s.svc.GetObject(&s3.GetObjectInput{
|
||||||
Bucket: &s.Bucket,
|
Bucket: &s.Bucket,
|
||||||
Key: &path,
|
Key: &path,
|
||||||
})
|
})
|
||||||
|
@ -97,7 +97,7 @@ func (s *S3Provider) SendFile(path string) (stream io.Reader, contenttype string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *S3Provider) SaveFile(file io.Reader, filename string, path string) bool {
|
func (s *S3Provider) SaveFile(file io.Reader, filename string, path string) bool {
|
||||||
uploader := s3manager.NewUploader(&sess)
|
uploader := s3manager.NewUploader(&s.sess)
|
||||||
_, err := uploader.Upload(&s3manager.UploadInput{
|
_, err := uploader.Upload(&s3manager.UploadInput{
|
||||||
Bucket: &s.Bucket,
|
Bucket: &s.Bucket,
|
||||||
Key: &filename,
|
Key: &filename,
|
||||||
|
@ -115,7 +115,7 @@ func (s *S3Provider) ObjectInfo(path string) (bool, bool, string) {
|
||||||
return true, true, ""
|
return true, true, ""
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err := svc.GetObject(&s3.GetObjectInput{
|
_, err := s.svc.GetObject(&s3.GetObjectInput{
|
||||||
Bucket: &s.Bucket,
|
Bucket: &s.Bucket,
|
||||||
Key: &path,
|
Key: &path,
|
||||||
})
|
})
|
||||||
|
@ -134,12 +134,12 @@ func (s *S3Provider) CreateDirectory(path string) bool {
|
||||||
|
|
||||||
// Delete simply deletes a file. This is expected to be a destructive action by default.
|
// Delete simply deletes a file. This is expected to be a destructive action by default.
|
||||||
func (s *S3Provider) Delete(path string) bool {
|
func (s *S3Provider) Delete(path string) bool {
|
||||||
_, err := svc.DeleteObject(&s3.DeleteObjectInput{Bucket: aws.String(s.Bucket), Key: aws.String(path)})
|
_, err := s.svc.DeleteObject(&s3.DeleteObjectInput{Bucket: aws.String(s.Bucket), Key: aws.String(path)})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
err = svc.WaitUntilObjectNotExists(&s3.HeadObjectInput{
|
err = s.svc.WaitUntilObjectNotExists(&s3.HeadObjectInput{
|
||||||
Bucket: aws.String(s.Bucket),
|
Bucket: aws.String(s.Bucket),
|
||||||
Key: aws.String(path),
|
Key: aws.String(path),
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue