blob: 89b9267d20cc18f3f22b64a5942b5523823c2bc9 [file] [log] [blame]
package upload
import (
"crypto/md5"
"fmt"
"path/filepath"
"strings"
"time"
"go.skia.org/infra/perf/go/ingestcommon"
)
// ObjectPath returns the Google Cloud Storage path where the JSON serialization
// of benchData should be stored.
//
// gcsPath will be the root of the path.
// now is the time which will be encoded in the path.
// b is the source bytes of the incoming file.
func ObjectPath(benchData *ingestcommon.BenchData, gcsPath string, now time.Time, b []byte) string {
hash := fmt.Sprintf("%x", md5.Sum(b))
keyparts := []string{}
if benchData.Key != nil {
for k, v := range benchData.Key {
keyparts = append(keyparts, k, v)
}
}
filename := fmt.Sprintf("%s_%s_%s.json", benchData.Hash, strings.Join(keyparts, "_"), hash)
return filepath.Join(gcsPath, now.Format("2006/01/02/15/"), filename)
}
// LogPath returns the Google Cloud Storage path where the raw POST data
// should be stored.
//
// gcsPath will be the root of the path.
// now is the time which will be encoded in the path.
// b is the source bytes of the incoming file.
func LogPath(gcsPath string, now time.Time, b []byte) string {
hash := fmt.Sprintf("%x", md5.Sum(b))
filename := fmt.Sprintf("%s.json", hash)
return filepath.Join(gcsPath, now.Format("2006/01/02/15/"), filename)
}