mirror of
https://github.com/octoleo/restic.git
synced 2024-11-30 00:33:57 +00:00
Merge pull request 2100 from restic/fix-1989
gs: Respect bandwidth limiting
This commit is contained in:
commit
98526b8dbe
7
changelog/unreleased/issue-1989
Normal file
7
changelog/unreleased/issue-1989
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Bugfix: Google Cloud Storage: Respect bandwidth limit
|
||||||
|
|
||||||
|
The GCS backend did not respect the bandwidth limit configured, a previous
|
||||||
|
commit accidentally removed support for it.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1989
|
||||||
|
https://github.com/restic/restic/pull/2100
|
@ -15,6 +15,7 @@ import (
|
|||||||
"github.com/restic/restic/internal/debug"
|
"github.com/restic/restic/internal/debug"
|
||||||
"github.com/restic/restic/internal/restic"
|
"github.com/restic/restic/internal/restic"
|
||||||
|
|
||||||
|
"golang.org/x/oauth2"
|
||||||
"golang.org/x/oauth2/google"
|
"golang.org/x/oauth2/google"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
storage "google.golang.org/api/storage/v1"
|
storage "google.golang.org/api/storage/v1"
|
||||||
@ -40,8 +41,17 @@ type Backend struct {
|
|||||||
// Ensure that *Backend implements restic.Backend.
|
// Ensure that *Backend implements restic.Backend.
|
||||||
var _ restic.Backend = &Backend{}
|
var _ restic.Backend = &Backend{}
|
||||||
|
|
||||||
func getStorageService() (*storage.Service, error) {
|
func getStorageService(rt http.RoundTripper) (*storage.Service, error) {
|
||||||
client, err := google.DefaultClient(context.TODO(), storage.DevstorageReadWriteScope)
|
// create a new HTTP client
|
||||||
|
httpClient := &http.Client{
|
||||||
|
Transport: rt,
|
||||||
|
}
|
||||||
|
|
||||||
|
// create a now context with the HTTP client stored at the oauth2.HTTPClient key
|
||||||
|
ctx := context.WithValue(context.Background(), oauth2.HTTPClient, httpClient)
|
||||||
|
|
||||||
|
// use this context
|
||||||
|
client, err := google.DefaultClient(ctx, storage.DevstorageReadWriteScope)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -59,7 +69,7 @@ const defaultListMaxItems = 1000
|
|||||||
func open(cfg Config, rt http.RoundTripper) (*Backend, error) {
|
func open(cfg Config, rt http.RoundTripper) (*Backend, error) {
|
||||||
debug.Log("open, config %#v", cfg)
|
debug.Log("open, config %#v", cfg)
|
||||||
|
|
||||||
service, err := getStorageService()
|
service, err := getStorageService(rt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "getStorageService")
|
return nil, errors.Wrap(err, "getStorageService")
|
||||||
}
|
}
|
||||||
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@ -109,8 +109,8 @@ golang.org/x/net/http/httpguts
|
|||||||
golang.org/x/net/http2/hpack
|
golang.org/x/net/http2/hpack
|
||||||
golang.org/x/net/idna
|
golang.org/x/net/idna
|
||||||
# golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
|
# golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
|
||||||
golang.org/x/oauth2/google
|
|
||||||
golang.org/x/oauth2
|
golang.org/x/oauth2
|
||||||
|
golang.org/x/oauth2/google
|
||||||
golang.org/x/oauth2/internal
|
golang.org/x/oauth2/internal
|
||||||
golang.org/x/oauth2/jws
|
golang.org/x/oauth2/jws
|
||||||
golang.org/x/oauth2/jwt
|
golang.org/x/oauth2/jwt
|
||||||
|
Loading…
Reference in New Issue
Block a user