This commit is contained in:
Andrea Spacca 2018-07-07 20:23:50 +02:00
parent 4f637def86
commit 0605b8e271
4 changed files with 29 additions and 35 deletions

View file

@ -116,14 +116,14 @@ var globalFlags = []cli.Flag{
EnvVar: "BUCKET",
},
cli.StringFlag{
Name: "gdrive-client-json-filepath",
Usage: "",
Value: "",
Name: "gdrive-client-json-filepath",
Usage: "",
Value: "",
},
cli.StringFlag{
Name: "gdrive-local-config-path",
Usage: "",
Value: "",
Name: "gdrive-local-config-path",
Usage: "",
Value: "",
},
cli.IntFlag{
Name: "rate-limit",
@ -271,7 +271,6 @@ func New() *Cmd {
options = append(options, server.HttpAuthCredentials(httpAuthUser, httpAuthPass))
}
switch provider := c.String("provider"); provider {
case "s3":
if accessKey := c.String("aws-access-key"); accessKey == "" {

View file

@ -59,8 +59,8 @@ import (
"github.com/gorilla/mux"
"github.com/russross/blackfriday"
qrcode "github.com/skip2/go-qrcode"
"encoding/base64"
qrcode "github.com/skip2/go-qrcode"
)
var (
@ -166,9 +166,9 @@ func (s *Server) previewHandler(w http.ResponseWriter, r *http.Request) {
Filename string
Url string
ContentLength uint64
GAKey string
GAKey string
UserVoiceKey string
QRCode string
QRCode string
}{
contentType,
content,
@ -326,7 +326,7 @@ func MetadataForRequest(contentType string, r *http.Request) Metadata {
MaxDate: time.Now().Add(time.Hour * 24 * 365 * 10),
Downloads: 0,
MaxDownloads: 99999999,
DeletionToken: Encode(10000000 + int64(rand.Intn(1000000000))) + Encode(10000000 + int64(rand.Intn(1000000000))),
DeletionToken: Encode(10000000+int64(rand.Intn(1000000000))) + Encode(10000000+int64(rand.Intn(1000000000))),
}
if v := r.Header.Get("Max-Downloads"); v == "" {
@ -439,7 +439,7 @@ func (s *Server) putHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")
relativeURL, _ := url.Parse(path.Join(token, filename))
deleteUrl , _ := url.Parse(path.Join(token, filename, metadata.DeletionToken))
deleteUrl, _ := url.Parse(path.Join(token, filename, metadata.DeletionToken))
w.Header().Set("X-Url-Delete", resolveUrl(r, deleteUrl, true))

View file

@ -203,7 +203,6 @@ func TLSConfig(cert, pk string) OptionFn {
}
}
func HttpAuthCredentials(user string, pass string) OptionFn {
return func(srvr *Server) {
srvr.AuthUser = user

View file

@ -11,16 +11,16 @@ import (
"strconv"
"sync"
"github.com/goamz/goamz/s3"
"encoding/json"
"github.com/goamz/goamz/s3"
"golang.org/x/oauth2"
"golang.org/x/net/context"
"golang.org/x/oauth2"
"golang.org/x/oauth2/google"
"google.golang.org/api/drive/v3"
"google.golang.org/api/googleapi"
"net/http"
"io/ioutil"
"net/http"
)
type Storage interface {
@ -83,10 +83,10 @@ func (s *LocalStorage) Get(token string, filename string) (reader io.ReadCloser,
func (s *LocalStorage) Delete(token string, filename string) (err error) {
metadata := filepath.Join(s.basedir, token, fmt.Sprintf("%s.metadata", filename))
os.Remove(metadata);
os.Remove(metadata)
path := filepath.Join(s.basedir, token, filename)
err = os.Remove(path);
err = os.Remove(path)
return
}
@ -315,9 +315,9 @@ func (s *S3Storage) Put(token string, filename string, reader io.Reader, content
}
type GDrive struct {
service *drive.Service
rootId string
basedir string
service *drive.Service
rootId string
basedir string
localConfigPath string
}
@ -338,7 +338,7 @@ func NewGDriveStorage(clientJsonFilepath string, localConfigPath string, basedir
return nil, err
}
storage := &GDrive{service: srv, basedir: basedir, rootId: "", localConfigPath:localConfigPath}
storage := &GDrive{service: srv, basedir: basedir, rootId: "", localConfigPath: localConfigPath}
err = storage.setupRoot()
if err != nil {
return nil, err
@ -364,8 +364,8 @@ func (s *GDrive) setupRoot() error {
}
dir := &drive.File{
Name: s.basedir,
MimeType: GDriveDirectoryMimeType,
Name: s.basedir,
MimeType: GDriveDirectoryMimeType,
}
di, err := s.service.Files.Create(dir).Fields("id").Do()
@ -374,7 +374,7 @@ func (s *GDrive) setupRoot() error {
}
s.rootId = di.Id
err = ioutil.WriteFile(rootFileConfig, []byte(s.rootId), os.FileMode(0600))
err = ioutil.WriteFile(rootFileConfig, []byte(s.rootId), os.FileMode(0600))
if err != nil {
return err
}
@ -386,7 +386,7 @@ func (s *GDrive) hasChecksum(f *drive.File) bool {
return f.Md5Checksum != ""
}
func (s *GDrive) list(nextPageToken string, q string) (*drive.FileList, error){
func (s *GDrive) list(nextPageToken string, q string) (*drive.FileList, error) {
return s.service.Files.List().Fields("nextPageToken, files(id, name, mimeType)").Q(q).PageToken(nextPageToken).Do()
}
@ -439,7 +439,6 @@ func (s *GDrive) findId(filename string, token string) (string, error) {
l, err = s.list(l.NextPageToken, q)
}
if fileId == "" {
return "", fmt.Errorf("Cannot find file %s/%s", token, filename)
}
@ -484,7 +483,6 @@ func (s *GDrive) Get(token string, filename string) (reader io.ReadCloser, conte
return
}
contentLength = uint64(fi.Size)
contentType = fi.MimeType
@ -534,12 +532,11 @@ func (s *GDrive) Put(token string, filename string, reader io.Reader, contentTyp
return err
}
if dirId == "" {
dir := &drive.File{
Name: token,
Parents: []string{s.rootId},
MimeType: GDriveDirectoryMimeType,
Name: token,
Parents: []string{s.rootId},
MimeType: GDriveDirectoryMimeType,
}
di, err := s.service.Files.Create(dir).Fields("id").Do()
@ -552,8 +549,8 @@ func (s *GDrive) Put(token string, filename string, reader io.Reader, contentTyp
// Instantiate empty drive file
dst := &drive.File{
Name: filename,
Parents: []string{dirId},
Name: filename,
Parents: []string{dirId},
MimeType: contentType,
}
@ -567,7 +564,6 @@ func (s *GDrive) Put(token string, filename string, reader io.Reader, contentTyp
return nil
}
// Retrieve a token, saves the token, then returns the generated client.
func getGDriveClient(config *oauth2.Config) *http.Client {
tokenFile := "token.json"