fix: restore deletion audit of individual objects (#6644)
This commit is contained in:
8
docker/compose/fluent.conf
Normal file
8
docker/compose/fluent.conf
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<source>
|
||||||
|
@type forward
|
||||||
|
port 24224
|
||||||
|
</source>
|
||||||
|
|
||||||
|
<match **>
|
||||||
|
@type stdout # Output logs to container's stdout (visible via `docker logs`)
|
||||||
|
</match>
|
||||||
@@ -19,7 +19,9 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- fluent
|
- fluent
|
||||||
fluent:
|
fluent:
|
||||||
image: fluent/fluentd:v1.14
|
image: fluent/fluentd:v1.17
|
||||||
|
volumes:
|
||||||
|
- ./fluent.conf:/fluentd/etc/fluent.conf
|
||||||
ports:
|
ports:
|
||||||
- 24224:24224
|
- 24224:24224
|
||||||
#s3tests:
|
#s3tests:
|
||||||
|
|||||||
@@ -32,12 +32,23 @@ func (s3a *S3ApiServer) DeleteObjectHandler(w http.ResponseWriter, r *http.Reque
|
|||||||
target := util.FullPath(fmt.Sprintf("%s/%s%s", s3a.option.BucketsPath, bucket, object))
|
target := util.FullPath(fmt.Sprintf("%s/%s%s", s3a.option.BucketsPath, bucket, object))
|
||||||
dir, name := target.DirAndName()
|
dir, name := target.DirAndName()
|
||||||
|
|
||||||
|
var auditLog *s3err.AccessLog
|
||||||
|
|
||||||
|
if s3err.Logger != nil {
|
||||||
|
auditLog = s3err.GetAccessLog(r, http.StatusNoContent, s3err.ErrNone)
|
||||||
|
}
|
||||||
|
|
||||||
err := s3a.WithFilerClient(false, func(client filer_pb.SeaweedFilerClient) error {
|
err := s3a.WithFilerClient(false, func(client filer_pb.SeaweedFilerClient) error {
|
||||||
|
|
||||||
if err := doDeleteEntry(client, dir, name, true, false); err != nil {
|
if err := doDeleteEntry(client, dir, name, true, false); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if auditLog != nil {
|
||||||
|
auditLog.Key = name
|
||||||
|
s3err.PostAccessLog(*auditLog)
|
||||||
|
}
|
||||||
|
|
||||||
if s3a.option.AllowEmptyFolder {
|
if s3a.option.AllowEmptyFolder {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ package s3err
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fluent/fluent-logger-golang/fluent"
|
|
||||||
"github.com/seaweedfs/seaweedfs/weed/glog"
|
|
||||||
"github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/fluent/fluent-logger-golang/fluent"
|
||||||
|
"github.com/seaweedfs/seaweedfs/weed/glog"
|
||||||
|
"github.com/seaweedfs/seaweedfs/weed/s3api/s3_constants"
|
||||||
)
|
)
|
||||||
|
|
||||||
type AccessLogExtend struct {
|
type AccessLogExtend struct {
|
||||||
|
|||||||
Reference in New Issue
Block a user