From 7a479e2ed4ea4f699133bf4adca86e09510ab41f Mon Sep 17 00:00:00 2001 From: cute-angelia Date: Sat, 26 Aug 2023 23:46:05 +0800 Subject: [PATCH 1/4] fix minio removeobjects --- internal/dao/storage/minio.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/internal/dao/storage/minio.go b/internal/dao/storage/minio.go index 3859a5b7..cc2b71a2 100644 --- a/internal/dao/storage/minio.go +++ b/internal/dao/storage/minio.go @@ -134,13 +134,16 @@ func (s *minioServant) DeleteObject(objectKey string) error { func (s *minioServant) DeleteObjects(objectKeys []string) (err error) { objectsCh := make(chan minio.ObjectInfo, len(objectKeys)) - resCh := s.client.RemoveObjects(context.Background(), s.bucket, objectsCh, minio.RemoveObjectsOptions{}) - for _, objectKey := range objectKeys { - objectsCh <- minio.ObjectInfo{ - Key: objectKey, + go func() { + defer close(objectsCh) + for _, objectKey := range objectKeys { + objectsCh <- minio.ObjectInfo{ + Key: objectKey, + } } - } + }() + resCh := s.client.RemoveObjects(context.Background(), s.bucket, objectsCh, minio.RemoveObjectsOptions{}) // 宽松处理所有错误,只记录最后一次发生的错误 for result := range resCh { if result.Err != nil { From a02d4d24d805f0cdf5602ddafc481302daf636f4 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Sun, 27 Aug 2023 09:25:08 +0800 Subject: [PATCH 2/4] optimized minio removeobjects --- CHANGELOG.md | 4 ++++ internal/dao/storage/minio.go | 15 +++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eeb5499e..d3278947 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to paopao-ce are documented in this file. ## 0.5.0+dev ([`dev`](https://github.com/rocboss/paopao-ce/tree/dev)) +## 0.4.2 +### Fixed +- fixed remove multi-objects no effects and occurs resource leak error when use Minio as OSS(Object Storage System). + ## 0.4.1 ### Changed - infinite scrolling instead of pagination for Home/User/Profile page diff --git a/internal/dao/storage/minio.go b/internal/dao/storage/minio.go index cc2b71a2..028e331a 100644 --- a/internal/dao/storage/minio.go +++ b/internal/dao/storage/minio.go @@ -134,16 +134,15 @@ func (s *minioServant) DeleteObject(objectKey string) error { func (s *minioServant) DeleteObjects(objectKeys []string) (err error) { objectsCh := make(chan minio.ObjectInfo, len(objectKeys)) - go func() { - defer close(objectsCh) - for _, objectKey := range objectKeys { - objectsCh <- minio.ObjectInfo{ - Key: objectKey, - } + resCh := s.client.RemoveObjects(context.Background(), s.bucket, objectsCh, minio.RemoveObjectsOptions{}) + for _, objectKey := range objectKeys { + objectsCh <- minio.ObjectInfo{ + Key: objectKey, } - }() + } + // 记得一定要close,否则会被卡死,退出不了函数,造成资源泄露!!! + close(objectsCh) - resCh := s.client.RemoveObjects(context.Background(), s.bucket, objectsCh, minio.RemoveObjectsOptions{}) // 宽松处理所有错误,只记录最后一次发生的错误 for result := range resCh { if result.Err != nil { From 52ccf537fa2cad91510c1cd4c4788acc4211fe72 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Sun, 27 Aug 2023 10:09:47 +0800 Subject: [PATCH 3/4] update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3278947..7a1cf63c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to paopao-ce are documented in this file. ## 0.5.0+dev ([`dev`](https://github.com/rocboss/paopao-ce/tree/dev)) ## 0.4.2 ### Fixed -- fixed remove multi-objects no effects and occurs resource leak error when use Minio as OSS(Object Storage System). +- fixed remove multi-objects no effects and occurs resource leak error when use Minio as OSS(Object Storage System).[#371](https://github.com/rocboss/paopao-ce/pull/371) [#372](https://github.com/rocboss/paopao-ce/pull/372) ## 0.4.1 ### Changed From 1791314a35fa55eb1b8809ac68b386088de1fd1d Mon Sep 17 00:00:00 2001 From: Michael Li Date: Sun, 27 Aug 2023 10:58:25 +0800 Subject: [PATCH 4/4] add PrivateKey in Alipay config section for default internal/conf/conf.yaml --- internal/conf/config.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/conf/config.yaml b/internal/conf/config.yaml index a4deda16..df1e4fb0 100644 --- a/internal/conf/config.yaml +++ b/internal/conf/config.yaml @@ -64,8 +64,9 @@ SmsJuhe: TplID: TplVal: "#code#=%s&#m#=%d" Alipay: - AppID: + AppID: "paopao-ce-app-id" InProduction: True + PrivateKey: "MIICXAIBAAKBgQCzXV/spaX9+eOjM5f12W6eDTtszU9f9rgpXG4EQwzZI3WM5+Fe+9Bn6NQQILfF1o3Z+3BEzHMMcYwxrQw/toq2o6JPchbUK7eArKc6pl/GV3uIefZdKncz5bZvCFMgiJrpy75lYKhJgotQFEfQd+ks2t0gtC007uOjmY9QDB2EVQIDAQABAoGAMruhi0UbW2gYHCxWuiJDKI9jlJXJ8sHNO126fJgehTiDYlSgKYaeXxW7DcjDUkEqpFJ7YepWTFm9prtksIzIVQFNNjstI6cvowVF2t+lWf7mIB4w0ugarVd+SXssQK830Og3kjtZ84a3BbC6uf3a/qcgoIO8Sj1VnzOJ8fEYl+0CQQDeG6JhauGDOC8oCTwbFs9QPpjwGnp7UkYAJNg7jn4uBSVeg4lwb5uj9TshLSp49geNkPcWeCythuiz1jvoTqEjAkEAzrwIBxUPT1WmcDUXAkVPaQNADDbhMZLdw5nHZEUVwmO3o1FkJky4MLjLjT977400mhsnsQCy4sAWUZs6aEyoJwJARK3U2zy6eOHhqwaYAGRgPJbuoaf+Ya3CGX9LIbdhCwfqUzxnPk40mVFWNF8L+BVTppHB5b/JSOsjf6BqK95McwJBAL+kvUhbdHrV6lmgTXkUaV3u3mO0SCPdgui9WIKSLG6sY+LpI48BlcnMtR12WVyjKL0nKS9Dd5EOAmKaJJXlYgcCQGWbWCn9KUDUqpm4o3wr5nwXzlS74XYZo65UAM7TSzHRpcovfv5uiQ0VRLImWeiSXKK2aTOBGn5eKbevRTxN07k=" RootCertFile: "custom/alipay/RootCert.crt" PublicCertFile: "custom/alipay/CertPublicKey_RSA2.crt" AppPublicCertFile: "custom/alipay/AppCertPublicKey.crt"