Skip to content
This repository was archived by the owner on May 24, 2024. It is now read-only.

Commit 77e5a3b

Browse files
authored
Merge pull request #24 from LF-Engineering/add-common-util
Enhance s3 calls
2 parents af05292 + f6abc86 commit 77e5a3b

File tree

2 files changed

+33
-14
lines changed

2 files changed

+33
-14
lines changed

affiliation/identity.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,13 @@ func (a *Affiliation) GetIdentityByUser(key string, value string) (*AffIdentity,
212212
return nil, err
213213
}
214214

215+
var errMsg AffiliationsResponse
216+
err = json.Unmarshal(res, &errMsg)
217+
if err != nil || errMsg.Message != "" {
218+
log.Println("Repository: GetIdentityByUser: failed to get identity: ", err)
219+
return nil, err
220+
}
221+
215222
var ident IdentityData
216223
err = json.Unmarshal(res, &ident)
217224
if err != nil {
@@ -225,6 +232,12 @@ func (a *Affiliation) GetIdentityByUser(key string, value string) (*AffIdentity,
225232
return nil, err
226233
}
227234

235+
err = json.Unmarshal(res, &errMsg)
236+
if err != nil || errMsg.Message != "" {
237+
log.Println("Repository: GetIdentityByUser: failed to get identity profile: ", err)
238+
return nil, err
239+
}
240+
228241
var profile UniqueIdentityFullProfile
229242
err = json.Unmarshal(profileRes, &profile)
230243
if err != nil {

aws/s3/s3.go

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,23 @@ import (
44
"bytes"
55
"flag"
66
"fmt"
7+
"io"
78
"io/ioutil"
89
"time"
910

1011
"github.com/aws/aws-sdk-go/aws"
1112
"github.com/aws/aws-sdk-go/aws/session"
1213
"github.com/aws/aws-sdk-go/service/s3"
13-
"golang.org/x/crypto/sha3"
14+
"golang.org/x/crypto/ripemd160"
1415
)
1516

16-
// Manager ...
17+
// Manager contains s3 client functionalities
1718
type Manager struct {
1819
bucketName string
1920
region string
2021
}
2122

22-
// NewManager new s3provider manager
23+
// NewManager initiates a new s3 manager
2324
func NewManager(bucket string, region string) *Manager {
2425
return &Manager{
2526
bucketName: bucket,
@@ -34,13 +35,20 @@ func (m *Manager) Save(payload []byte) error {
3435
var timeout time.Duration
3536

3637
// generating hash and create object name
37-
h := sha3.Sum224(payload[:])
38-
objName := fmt.Sprintf("%v-%x", time.Now().Unix(), h)
39-
40-
flag.StringVar(&bucket, "b", m.bucketName, "Bucket name.")
41-
flag.StringVar(&key, "k", objName, "Object key name.")
42-
flag.DurationVar(&timeout, "d", 0, "Upload timeout.")
43-
flag.Parse()
38+
md := ripemd160.New()
39+
keyName, err := io.WriteString(md, string(payload[:]))
40+
41+
objName := fmt.Sprintf("%v-%x", time.Now().Unix(), keyName)
42+
b := flag.Lookup("b")
43+
k := flag.Lookup("k")
44+
d := flag.Lookup("d")
45+
46+
if b == nil && k == nil && d == nil {
47+
flag.StringVar(&bucket, "b", m.bucketName, "Bucket name.")
48+
flag.StringVar(&key, "k", objName, "Object key name.")
49+
flag.DurationVar(&timeout, "d", 0, "Upload timeout.")
50+
flag.Parse()
51+
}
4452

4553
sess := session.Must(session.NewSession(&aws.Config{Region: aws.String(m.region)}))
4654
svc := s3.New(sess)
@@ -49,12 +57,11 @@ func (m *Manager) Save(payload []byte) error {
4957

5058
// Uploads the object to S3. The Context will interrupt the request if the
5159
// timeout expires.
52-
_, err := svc.PutObject(&s3.PutObjectInput{
60+
_, err = svc.PutObject(&s3.PutObjectInput{
5361
Bucket: aws.String(m.bucketName),
54-
Key: aws.String(key),
62+
Key: aws.String(objName),
5563
Body: r,
5664
})
57-
5865
return err
5966
}
6067

@@ -75,7 +82,6 @@ func (m *Manager) GetKeys() ([]string, error) {
7582
return true // continue paging
7683
})
7784
if err != nil {
78-
panic(fmt.Sprintf("failed to list objects for bucket, %s, %v", m.bucketName, err))
7985
return nil, err
8086
}
8187

0 commit comments

Comments
 (0)