[#147] Download zip by FilePath attribute

Signed-off-by: Denis Kirillov <denis@nspcc.ru>
This commit is contained in:
Denis Kirillov 2022-04-19 15:02:18 +03:00 committed by Kira
parent 48ce84e65f
commit 1c2fec8182
2 changed files with 10 additions and 6 deletions

View file

@ -36,6 +36,8 @@ type request struct {
var errObjectNotFound = errors.New("object not found")
const attributeFilePath = "FilePath"
func isValidToken(s string) bool {
for _, c := range s {
if c <= ' ' || c > 127 {
@ -374,7 +376,7 @@ func (d *Downloader) DownloadZipped(c *fasthttp.RequestCtx) {
return
}
resSearch, err := d.search(c, containerID, object.AttributeFileName, prefix, object.MatchCommonPrefix)
resSearch, err := d.search(c, containerID, attributeFilePath, prefix, object.MatchCommonPrefix)
if err != nil {
log.Error("could not search for objects", zap.Error(err))
response.Error(c, "could not search for objects", fasthttp.StatusBadRequest)
@ -428,7 +430,7 @@ func (d *Downloader) DownloadZipped(c *fasthttp.RequestCtx) {
}
w, err = zipWriter.CreateHeader(&zip.FileHeader{
Name: getFilename(&resGet.Header),
Name: getZipFilePath(&resGet.Header),
Method: compression,
Modified: time.Now(),
})
@ -474,9 +476,9 @@ func (d *Downloader) DownloadZipped(c *fasthttp.RequestCtx) {
}
}
func getFilename(obj *object.Object) string {
func getZipFilePath(obj *object.Object) string {
for _, attr := range obj.Attributes() {
if attr.Key() == object.AttributeFileName {
if attr.Key() == attributeFilePath {
return attr.Value()
}
}