Browse Source

save token in gdrive local config path (#170)

tags/v1.0.0
Andrea Spacca 5 years ago
committed by GitHub
parent
commit
84ee48d8b1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 5 deletions
  1. +1
    -1
      README.md
  2. +6
    -4
      server/storage.go

+ 1
- 1
README.md View File

@@ -141,7 +141,7 @@ If you want to use TLS using your own certificates, set tls-listener to :443, fo
Make sure your GOPATH is set correctly.

```bash
go run main.go -provider=local --listener :8080 --temp-path=/tmp/ --basedir=/tmp/
go run main.go --provider=local --listener :8080 --temp-path=/tmp/ --basedir=/tmp/
```

## Build


+ 6
- 4
server/storage.go View File

@@ -334,7 +334,7 @@ func NewGDriveStorage(clientJsonFilepath string, localConfigPath string, basedir
return nil, err
}

srv, err := drive.New(getGDriveClient(config))
srv, err := drive.New(getGDriveClient(config, localConfigPath))
if err != nil {
return nil, err
}
@@ -349,6 +349,7 @@ func NewGDriveStorage(clientJsonFilepath string, localConfigPath string, basedir
}

const GDriveRootConfigFile = "root_id.conf"
const GDriveTokenJsonFile = "token.json"
const GDriveDirectoryMimeType = "application/vnd.google-apps.folder"

func (s *GDrive) setupRoot() error {
@@ -569,13 +570,14 @@ func (s *GDrive) Put(token string, filename string, reader io.Reader, contentTyp
}

// Retrieve a token, saves the token, then returns the generated client.
func getGDriveClient(config *oauth2.Config) *http.Client {
tokenFile := "token.json"
func getGDriveClient(config *oauth2.Config, localConfigPath string) *http.Client {
tokenFile := filepath.Join(localConfigPath, GDriveTokenJsonFile)
tok, err := gDriveTokenFromFile(tokenFile)
if err != nil {
tok = getGDriveTokenFromWeb(config)
saveGDriveToken(tokenFile, tok)
}

return config.Client(context.Background(), tok)
}

@@ -590,7 +592,7 @@ func getGDriveTokenFromWeb(config *oauth2.Config) *oauth2.Token {
log.Fatalf("Unable to read authorization code %v", err)
}

tok, err := config.Exchange(oauth2.NoContext, authCode)
tok, err := config.Exchange(context.TODO(), authCode)
if err != nil {
log.Fatalf("Unable to retrieve token from web %v", err)
}


Loading…
Cancel
Save