mirror of
https://codeberg.org/git-pages/git-pages.git
synced 2026-05-21 14:41:34 +00:00
Rename blob transforms to match HTTP encoding names.
This commit is contained in:
@@ -22,8 +22,8 @@ func CollectTar(
|
||||
|
||||
appendFile := func(header *tar.Header, data []byte, transform Transform) (err error) {
|
||||
switch transform {
|
||||
case Transform_None:
|
||||
case Transform_Zstandard:
|
||||
case Transform_Identity:
|
||||
case Transform_Zstd:
|
||||
data, err = zstdDecoder.DecodeAll(data, []byte{})
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -53,7 +53,7 @@ func CollectTar(
|
||||
header.Typeflag = tar.TypeDir
|
||||
header.Mode = 0755
|
||||
header.ModTime = manifestMtime
|
||||
err = appendFile(&header, nil, Transform_None)
|
||||
err = appendFile(&header, nil, Transform_Identity)
|
||||
|
||||
case Type_InlineFile:
|
||||
header.Typeflag = tar.TypeReg
|
||||
@@ -79,7 +79,7 @@ func CollectTar(
|
||||
header.Typeflag = tar.TypeSymlink
|
||||
header.Mode = 0644
|
||||
header.ModTime = manifestMtime
|
||||
err = appendFile(&header, entry.GetData(), Transform_None)
|
||||
err = appendFile(&header, entry.GetData(), Transform_Identity)
|
||||
|
||||
default:
|
||||
return fmt.Errorf("unexpected entry type")
|
||||
@@ -95,7 +95,7 @@ func CollectTar(
|
||||
Typeflag: tar.TypeReg,
|
||||
Mode: 0644,
|
||||
ModTime: manifestMtime,
|
||||
}, []byte(redirects), Transform_None)
|
||||
}, []byte(redirects), Transform_Identity)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -107,7 +107,7 @@ func CollectTar(
|
||||
Typeflag: tar.TypeReg,
|
||||
Mode: 0644,
|
||||
ModTime: manifestMtime,
|
||||
}, []byte(headers), Transform_None)
|
||||
}, []byte(headers), Transform_Identity)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ func DetectContentType(manifest *Manifest) {
|
||||
for path, entry := range manifest.Contents {
|
||||
if entry.GetType() == Type_Directory || entry.GetType() == Type_Symlink {
|
||||
// no Content-Type
|
||||
} else if entry.GetType() == Type_InlineFile && entry.GetTransform() == Transform_None {
|
||||
} else if entry.GetType() == Type_InlineFile && entry.GetTransform() == Transform_Identity {
|
||||
contentType := mime.TypeByExtension(filepath.Ext(path))
|
||||
if contentType == "" {
|
||||
contentType = http.DetectContentType(entry.Data[:min(512, len(entry.Data))])
|
||||
@@ -168,7 +168,7 @@ func CompressFiles(ctx context.Context, manifest *Manifest) {
|
||||
|
||||
var originalSize, compressedSize int64
|
||||
for _, entry := range manifest.Contents {
|
||||
if entry.GetType() == Type_InlineFile && entry.GetTransform() == Transform_None {
|
||||
if entry.GetType() == Type_InlineFile && entry.GetTransform() == Transform_Identity {
|
||||
mtype := getMediaType(entry.GetContentType())
|
||||
if strings.HasPrefix(mtype, "video/") || strings.HasPrefix(mtype, "audio/") {
|
||||
continue
|
||||
@@ -178,7 +178,7 @@ func CompressFiles(ctx context.Context, manifest *Manifest) {
|
||||
if len(compressedData) < int(*entry.Size) {
|
||||
entry.Data = compressedData
|
||||
entry.Size = proto.Int64(int64(len(entry.Data)))
|
||||
entry.Transform = Transform_Zstandard.Enum()
|
||||
entry.Transform = Transform_Zstd.Enum()
|
||||
}
|
||||
compressedSize += entry.GetSize()
|
||||
}
|
||||
|
||||
@@ -300,11 +300,13 @@ func getPage(w http.ResponseWriter, r *http.Request) error {
|
||||
acceptedEncodings := parseHTTPEncodings(r.Header.Get("Accept-Encoding"))
|
||||
negotiatedEncoding := true
|
||||
switch entry.GetTransform() {
|
||||
case Transform_None:
|
||||
if acceptedEncodings.Negotiate("identity") != "identity" {
|
||||
case Transform_Identity:
|
||||
switch acceptedEncodings.Negotiate("identity") {
|
||||
case "identity":
|
||||
default:
|
||||
negotiatedEncoding = false
|
||||
}
|
||||
case Transform_Zstandard:
|
||||
case Transform_Zstd:
|
||||
supported := []string{"zstd", "identity"}
|
||||
if entry.ContentType == nil {
|
||||
// If Content-Type is unset, `http.ServeContent` will try to sniff
|
||||
|
||||
@@ -81,24 +81,25 @@ func (Type) EnumDescriptor() ([]byte, []int) {
|
||||
return file_schema_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
// Transformation names should match HTTP `Accept-Encoding:` header.
|
||||
type Transform int32
|
||||
|
||||
const (
|
||||
// No transformation.
|
||||
Transform_None Transform = 0
|
||||
Transform_Identity Transform = 0
|
||||
// Zstandard compression.
|
||||
Transform_Zstandard Transform = 1
|
||||
Transform_Zstd Transform = 1
|
||||
)
|
||||
|
||||
// Enum value maps for Transform.
|
||||
var (
|
||||
Transform_name = map[int32]string{
|
||||
0: "None",
|
||||
1: "Zstandard",
|
||||
0: "Identity",
|
||||
1: "Zstd",
|
||||
}
|
||||
Transform_value = map[string]int32{
|
||||
"None": 0,
|
||||
"Zstandard": 1,
|
||||
"Identity": 0,
|
||||
"Zstd": 1,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -207,7 +208,7 @@ func (x *Entry) GetTransform() Transform {
|
||||
if x != nil && x.Transform != nil {
|
||||
return *x.Transform
|
||||
}
|
||||
return Transform_None
|
||||
return Transform_Identity
|
||||
}
|
||||
|
||||
func (x *Entry) GetContentType() string {
|
||||
@@ -614,10 +615,10 @@ const file_schema_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"InlineFile\x10\x02\x12\x10\n" +
|
||||
"\fExternalFile\x10\x03\x12\v\n" +
|
||||
"\aSymlink\x10\x04*$\n" +
|
||||
"\tTransform\x12\b\n" +
|
||||
"\x04None\x10\x00\x12\r\n" +
|
||||
"\tZstandard\x10\x01B,Z*codeberg.org/git-pages/git-pages/git_pagesb\beditionsp\xe8\a"
|
||||
"\aSymlink\x10\x04*#\n" +
|
||||
"\tTransform\x12\f\n" +
|
||||
"\bIdentity\x10\x00\x12\b\n" +
|
||||
"\x04Zstd\x10\x01B,Z*codeberg.org/git-pages/git-pages/git_pagesb\beditionsp\xe8\a"
|
||||
|
||||
var (
|
||||
file_schema_proto_rawDescOnce sync.Once
|
||||
|
||||
@@ -15,11 +15,12 @@ enum Type {
|
||||
Symlink = 4;
|
||||
}
|
||||
|
||||
// Transformation names should match HTTP `Accept-Encoding:` header.
|
||||
enum Transform {
|
||||
// No transformation.
|
||||
None = 0;
|
||||
Identity = 0;
|
||||
// Zstandard compression.
|
||||
Zstandard = 1;
|
||||
Zstd = 1;
|
||||
}
|
||||
|
||||
message Entry {
|
||||
|
||||
Reference in New Issue
Block a user