Skip to content

Commit f63e072

Browse files
authored
Merge pull request #136 from planetlabs/blob-read
Read from cloud storage
2 parents ff75482 + 1a9b0d7 commit f63e072

File tree

9 files changed

+659
-38
lines changed

9 files changed

+659
-38
lines changed

cmd/gpq/command/command.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ package command
22

33
import (
44
"bytes"
5+
"context"
56
"fmt"
67
"io"
8+
"net/url"
79
"os"
8-
"strings"
910

1011
"github.com/planetlabs/gpq/internal/storage"
1112
)
@@ -42,8 +43,8 @@ func readerFromInput(input string) (storage.ReaderAtSeeker, error) {
4243
return bytes.NewReader(data), nil
4344
}
4445

45-
if strings.HasPrefix(input, "http://") || strings.HasPrefix(input, "https://") {
46-
return storage.NewHttpReader(input)
46+
if u, err := url.Parse(input); err == nil && u.Scheme != "" {
47+
return storage.NewReader(context.Background(), input)
4748
}
4849

4950
return os.Open(input)

go.mod

+57-6
Original file line numberDiff line numberDiff line change
@@ -10,41 +10,92 @@ require (
1010
github.com/paulmach/orb v0.11.0
1111
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
1212
github.com/stretchr/testify v1.8.4
13+
gocloud.dev v0.36.0
1314
golang.org/x/term v0.16.0
1415
)
1516

1617
require (
18+
cloud.google.com/go v0.110.10 // indirect
19+
cloud.google.com/go/compute v1.23.3 // indirect
20+
cloud.google.com/go/compute/metadata v0.2.3 // indirect
21+
cloud.google.com/go/iam v1.1.5 // indirect
22+
cloud.google.com/go/storage v1.35.1 // indirect
23+
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.0 // indirect
24+
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 // indirect
25+
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 // indirect
26+
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.0 // indirect
27+
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
28+
github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
29+
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 // indirect
1730
github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect
1831
github.com/andybalholm/brotli v1.0.5 // indirect
1932
github.com/apache/thrift v0.17.0 // indirect
33+
github.com/aws/aws-sdk-go v1.49.0 // indirect
34+
github.com/aws/aws-sdk-go-v2 v1.24.0 // indirect
35+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 // indirect
36+
github.com/aws/aws-sdk-go-v2/config v1.26.1 // indirect
37+
github.com/aws/aws-sdk-go-v2/credentials v1.16.12 // indirect
38+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect
39+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.7 // indirect
40+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.9 // indirect
41+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.9 // indirect
42+
github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect
43+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.9 // indirect
44+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect
45+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.9 // indirect
46+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.9 // indirect
47+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.9 // indirect
48+
github.com/aws/aws-sdk-go-v2/service/s3 v1.47.5 // indirect
49+
github.com/aws/aws-sdk-go-v2/service/sso v1.18.5 // indirect
50+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.5 // indirect
51+
github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 // indirect
52+
github.com/aws/smithy-go v1.19.0 // indirect
2053
github.com/davecgh/go-spew v1.1.1 // indirect
2154
github.com/goccy/go-json v0.10.2 // indirect
55+
github.com/golang-jwt/jwt/v5 v5.1.0 // indirect
56+
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
2257
github.com/golang/protobuf v1.5.3 // indirect
2358
github.com/golang/snappy v0.0.4 // indirect
2459
github.com/google/flatbuffers v23.5.26+incompatible // indirect
60+
github.com/google/s2a-go v0.1.7 // indirect
61+
github.com/google/uuid v1.4.0 // indirect
62+
github.com/google/wire v0.5.0 // indirect
63+
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
64+
github.com/googleapis/gax-go/v2 v2.12.0 // indirect
65+
github.com/jmespath/go-jmespath v0.4.0 // indirect
2566
github.com/klauspost/asmfmt v1.3.2 // indirect
2667
github.com/klauspost/compress v1.16.7 // indirect
2768
github.com/klauspost/cpuid/v2 v2.2.5 // indirect
69+
github.com/kylelemons/godebug v1.1.0 // indirect
2870
github.com/mattn/go-colorable v0.1.13 // indirect
2971
github.com/mattn/go-isatty v0.0.20 // indirect
3072
github.com/mattn/go-runewidth v0.0.15 // indirect
3173
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect
3274
github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect
3375
github.com/pierrec/lz4/v4 v4.1.18 // indirect
76+
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
3477
github.com/pmezard/go-difflib v1.0.0 // indirect
3578
github.com/rivo/uniseg v0.2.0 // indirect
3679
github.com/zeebo/xxh3 v1.0.2 // indirect
3780
go.mongodb.org/mongo-driver v1.11.4 // indirect
81+
go.opencensus.io v0.24.0 // indirect
82+
golang.org/x/crypto v0.17.0 // indirect
3883
golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect
3984
golang.org/x/mod v0.13.0 // indirect
40-
golang.org/x/net v0.17.0 // indirect
41-
golang.org/x/sync v0.4.0 // indirect
85+
golang.org/x/net v0.18.0 // indirect
86+
golang.org/x/oauth2 v0.14.0 // indirect
87+
golang.org/x/sync v0.5.0 // indirect
4288
golang.org/x/sys v0.16.0 // indirect
43-
golang.org/x/text v0.13.0 // indirect
89+
golang.org/x/text v0.14.0 // indirect
90+
golang.org/x/time v0.4.0 // indirect
4491
golang.org/x/tools v0.14.0 // indirect
45-
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
46-
google.golang.org/genproto/googleapis/rpc v0.0.0-20231002182017-d307bd883b97 // indirect
47-
google.golang.org/grpc v1.58.3 // indirect
92+
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
93+
google.golang.org/api v0.151.0 // indirect
94+
google.golang.org/appengine v1.6.8 // indirect
95+
google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f // indirect
96+
google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect
97+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
98+
google.golang.org/grpc v1.59.0 // indirect
4899
google.golang.org/protobuf v1.31.0 // indirect
49100
gopkg.in/yaml.v3 v3.0.1 // indirect
50101
)

0 commit comments

Comments
 (0)