mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2025-11-09 16:50:25 +08:00
实现Web静态文件分发
This commit is contained in:
@@ -32,7 +32,6 @@ type HTTPWeb struct {
|
|||||||
|
|
||||||
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||||
IsOn bool `protobuf:"varint,2,opt,name=isOn,proto3" json:"isOn,omitempty"`
|
IsOn bool `protobuf:"varint,2,opt,name=isOn,proto3" json:"isOn,omitempty"`
|
||||||
Root string `protobuf:"bytes,3,opt,name=root,proto3" json:"root,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *HTTPWeb) Reset() {
|
func (x *HTTPWeb) Reset() {
|
||||||
@@ -81,23 +80,15 @@ func (x *HTTPWeb) GetIsOn() bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *HTTPWeb) GetRoot() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Root
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
var File_model_http_web_proto protoreflect.FileDescriptor
|
var File_model_http_web_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_model_http_web_proto_rawDesc = []byte{
|
var file_model_http_web_proto_rawDesc = []byte{
|
||||||
0x0a, 0x14, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x77, 0x65, 0x62,
|
0x0a, 0x14, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x77, 0x65, 0x62,
|
||||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x41, 0x0a, 0x07, 0x48, 0x54,
|
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x2d, 0x0a, 0x07, 0x48, 0x54,
|
||||||
0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x54, 0x50, 0x57, 0x65, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x02, 0x20,
|
0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x02, 0x20,
|
||||||
0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f,
|
0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70,
|
||||||
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x42, 0x06, 0x5a,
|
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ type CreateHTTPWebRequest struct {
|
|||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
Root string `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
|
RootJSON []byte `protobuf:"bytes,1,opt,name=rootJSON,proto3" json:"rootJSON,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *CreateHTTPWebRequest) Reset() {
|
func (x *CreateHTTPWebRequest) Reset() {
|
||||||
@@ -70,11 +70,11 @@ func (*CreateHTTPWebRequest) Descriptor() ([]byte, []int) {
|
|||||||
return file_service_http_web_proto_rawDescGZIP(), []int{0}
|
return file_service_http_web_proto_rawDescGZIP(), []int{0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *CreateHTTPWebRequest) GetRoot() string {
|
func (x *CreateHTTPWebRequest) GetRootJSON() []byte {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Root
|
return x.RootJSON
|
||||||
}
|
}
|
||||||
return ""
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateHTTPWebResponse struct {
|
type CreateHTTPWebResponse struct {
|
||||||
@@ -321,7 +321,7 @@ type UpdateHTTPWebRequest struct {
|
|||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"`
|
WebId int64 `protobuf:"varint,1,opt,name=webId,proto3" json:"webId,omitempty"`
|
||||||
Root string `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"`
|
RootJSON []byte `protobuf:"bytes,2,opt,name=rootJSON,proto3" json:"rootJSON,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *UpdateHTTPWebRequest) Reset() {
|
func (x *UpdateHTTPWebRequest) Reset() {
|
||||||
@@ -363,11 +363,11 @@ func (x *UpdateHTTPWebRequest) GetWebId() int64 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *UpdateHTTPWebRequest) GetRoot() string {
|
func (x *UpdateHTTPWebRequest) GetRootJSON() []byte {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Root
|
return x.RootJSON
|
||||||
}
|
}
|
||||||
return ""
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更改Gzip配置
|
// 更改Gzip配置
|
||||||
@@ -1049,31 +1049,32 @@ var file_service_http_web_proto_rawDesc = []byte{
|
|||||||
0x65, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x14, 0x6d, 0x6f,
|
0x65, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x14, 0x6d, 0x6f,
|
||||||
0x64, 0x65, 0x6c, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x77, 0x65, 0x62, 0x2e, 0x70, 0x72, 0x6f,
|
0x64, 0x65, 0x6c, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x77, 0x65, 0x62, 0x2e, 0x70, 0x72, 0x6f,
|
||||||
0x74, 0x6f, 0x1a, 0x12, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73,
|
0x74, 0x6f, 0x1a, 0x12, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73,
|
||||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2a, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
|
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x32, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
|
||||||
0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
|
0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a,
|
||||||
0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f,
|
0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
|
||||||
0x6f, 0x74, 0x22, 0x2d, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50,
|
0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x2d, 0x0a, 0x15, 0x43, 0x72,
|
||||||
0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77,
|
0x65, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||||
0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49,
|
0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x64, 0x22, 0x31, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
|
0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x19, 0x46, 0x69, 0x6e,
|
||||||
0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14,
|
0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52,
|
||||||
0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77,
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18,
|
||||||
0x65, 0x62, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62,
|
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x1a,
|
||||||
0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57,
|
||||||
0x73, 0x65, 0x12, 0x1d, 0x0a, 0x03, 0x77, 0x65, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x65, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x03, 0x77, 0x65,
|
||||||
0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x03, 0x77, 0x65,
|
0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x48, 0x54, 0x54,
|
||||||
0x62, 0x22, 0x37, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
|
0x50, 0x57, 0x65, 0x62, 0x52, 0x03, 0x77, 0x65, 0x62, 0x22, 0x37, 0x0a, 0x1f, 0x46, 0x69, 0x6e,
|
||||||
0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71,
|
0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20,
|
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05,
|
||||||
0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x20, 0x46, 0x69,
|
0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62,
|
||||||
0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62,
|
0x49, 0x64, 0x22, 0x3c, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65,
|
||||||
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18,
|
0x64, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65,
|
||||||
0x0a, 0x07, 0x77, 0x65, 0x62, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x4a, 0x53, 0x4f,
|
||||||
0x07, 0x77, 0x65, 0x62, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x40, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61,
|
0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x77, 0x65, 0x62, 0x4a, 0x53, 0x4f, 0x4e,
|
||||||
0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
0x22, 0x48, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65,
|
||||||
0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
|
0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49,
|
||||||
0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02,
|
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1a,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0x4c, 0x0a, 0x18, 0x55, 0x70,
|
0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
|
||||||
|
0x52, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4c, 0x0a, 0x18, 0x55, 0x70,
|
||||||
0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x47, 0x7a, 0x69, 0x70, 0x52,
|
0x64, 0x61, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x57, 0x65, 0x62, 0x47, 0x7a, 0x69, 0x70, 0x52,
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18,
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
|
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08,
|
||||||
|
|||||||
@@ -6,5 +6,4 @@ package pb;
|
|||||||
message HTTPWeb {
|
message HTTPWeb {
|
||||||
int64 id = 1;
|
int64 id = 1;
|
||||||
bool isOn = 2;
|
bool isOn = 2;
|
||||||
string root = 3;
|
|
||||||
}
|
}
|
||||||
@@ -58,7 +58,7 @@ service HTTPWebService {
|
|||||||
|
|
||||||
// 创建Web配置
|
// 创建Web配置
|
||||||
message CreateHTTPWebRequest {
|
message CreateHTTPWebRequest {
|
||||||
string root = 1;
|
bytes rootJSON = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message CreateHTTPWebResponse {
|
message CreateHTTPWebResponse {
|
||||||
@@ -86,7 +86,7 @@ message FindEnabledHTTPWebConfigResponse {
|
|||||||
// 更改Web配置
|
// 更改Web配置
|
||||||
message UpdateHTTPWebRequest {
|
message UpdateHTTPWebRequest {
|
||||||
int64 webId = 1;
|
int64 webId = 1;
|
||||||
string root = 2;
|
bytes rootJSON = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更改Gzip配置
|
// 更改Gzip配置
|
||||||
|
|||||||
17
pkg/serverconfigs/http_root_config.go
Normal file
17
pkg/serverconfigs/http_root_config.go
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package serverconfigs
|
||||||
|
|
||||||
|
// Web文档目录配置
|
||||||
|
type HTTPRootConfig struct {
|
||||||
|
IsPrior bool `yaml:"isPrior" json:"isPrior"` // 是否优先
|
||||||
|
IsOn bool `yaml:"isOn" json:"isOn"` // 是否启用
|
||||||
|
Dir string `yaml:"dir" json:"dir"` // 目录
|
||||||
|
Indexes []string `yaml:"indexes" json:"indexes"` // 默认首页文件
|
||||||
|
StripPrefix string `yaml:"stripPrefix" json:"stripPrefix"` // 去除前缀
|
||||||
|
DecodePath bool `yaml:"decodePath" json:"decodePath"` // 是否对请求路径进行解码
|
||||||
|
IsBreak bool `yaml:"isBreak" json:"isBreak"` // 找不到文件的情况下是否终止
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化
|
||||||
|
func (ths *HTTPRootConfig) Init() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -13,9 +13,8 @@ type HTTPWebConfig struct {
|
|||||||
Shutdown *HTTPShutdownConfig `yaml:"shutdown" json:"shutdown"` // 临时关闭配置
|
Shutdown *HTTPShutdownConfig `yaml:"shutdown" json:"shutdown"` // 临时关闭配置
|
||||||
Pages []*HTTPPageConfig `yaml:"pages" json:"pages"` // 特殊页面配置
|
Pages []*HTTPPageConfig `yaml:"pages" json:"pages"` // 特殊页面配置
|
||||||
RedirectToHttps *HTTPRedirectToHTTPSConfig `yaml:"redirectToHttps" json:"redirectToHttps"` // 是否自动跳转到Https
|
RedirectToHttps *HTTPRedirectToHTTPSConfig `yaml:"redirectToHttps" json:"redirectToHttps"` // 是否自动跳转到Https
|
||||||
Root string `yaml:"root" json:"root"` // 资源根目录 TODO
|
Root *HTTPRootConfig `yaml:"root" json:"root"` // 资源根目录 TODO
|
||||||
Indexes []string `yaml:"indexes" json:"indexes"` // 默认首页文件
|
MaxRequestBodySize string `yaml:"maxRequestBodySize" json:"maxRequestBodySize"` // 请求body最大尺寸 TODO 需要实现
|
||||||
MaxRequestBodySize string `yaml:"maxRequestBodySize" json:"maxRequestBodySize"` // 请求body最大尺寸
|
|
||||||
AccessLogRef *HTTPAccessLogRef `yaml:"accessLog" json:"accessLog"` // 访问日志配置
|
AccessLogRef *HTTPAccessLogRef `yaml:"accessLog" json:"accessLog"` // 访问日志配置
|
||||||
StatRef *HTTPStatRef `yaml:"statRef" json:"statRef"` // 统计配置
|
StatRef *HTTPStatRef `yaml:"statRef" json:"statRef"` // 统计配置
|
||||||
CacheRef *HTTPCacheRef `yaml:"cacheRef" json:"cacheRef"` // 缓存配置
|
CacheRef *HTTPCacheRef `yaml:"cacheRef" json:"cacheRef"` // 缓存配置
|
||||||
@@ -33,6 +32,14 @@ type HTTPWebConfig struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *HTTPWebConfig) Init() error {
|
func (this *HTTPWebConfig) Init() error {
|
||||||
|
// root
|
||||||
|
if this.Root != nil {
|
||||||
|
err := this.Root.Init()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 路径规则
|
// 路径规则
|
||||||
if len(this.Locations) > 0 {
|
if len(this.Locations) > 0 {
|
||||||
for _, location := range this.Locations {
|
for _, location := range this.Locations {
|
||||||
|
|||||||
@@ -21,16 +21,20 @@ type HTTPHeaderPolicy struct {
|
|||||||
|
|
||||||
Expires *HTTPExpireHeaderConfig `yaml:"expires" json:"expires"` // TODO
|
Expires *HTTPExpireHeaderConfig `yaml:"expires" json:"expires"` // TODO
|
||||||
|
|
||||||
|
addHeaderNames []string
|
||||||
|
setHeaderNames []string
|
||||||
deleteHeaderMap map[string]bool // header => bool
|
deleteHeaderMap map[string]bool // header => bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// 校验
|
// 校验
|
||||||
func (this *HTTPHeaderPolicy) Init() error {
|
func (this *HTTPHeaderPolicy) Init() error {
|
||||||
|
this.addHeaderNames = []string{}
|
||||||
for _, h := range this.AddHeaders {
|
for _, h := range this.AddHeaders {
|
||||||
err := h.Init()
|
err := h.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
this.addHeaderNames = append(this.addHeaderNames, strings.ToUpper(h.Name))
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, h := range this.AddTrailers {
|
for _, h := range this.AddTrailers {
|
||||||
@@ -40,11 +44,13 @@ func (this *HTTPHeaderPolicy) Init() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.setHeaderNames = []string{}
|
||||||
for _, h := range this.SetHeaders {
|
for _, h := range this.SetHeaders {
|
||||||
err := h.Init()
|
err := h.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
this.setHeaderNames = append(this.setHeaderNames, strings.ToUpper(h.Name))
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, h := range this.ReplaceHeaders {
|
for _, h := range this.ReplaceHeaders {
|
||||||
@@ -68,8 +74,25 @@ func (this *HTTPHeaderPolicy) IsEmpty() bool {
|
|||||||
return len(this.AddHeaders) == 0 && len(this.AddTrailers) == 0 && len(this.SetHeaders) == 0 && len(this.ReplaceHeaders) == 0 && this.Expires == nil
|
return len(this.AddHeaders) == 0 && len(this.AddTrailers) == 0 && len(this.SetHeaders) == 0 && len(this.ReplaceHeaders) == 0 && this.Expires == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 判断Add和Set中是否包含某个Header
|
||||||
|
func (this *HTTPHeaderPolicy) ContainsHeader(name string) bool {
|
||||||
|
name = strings.ToUpper(name)
|
||||||
|
|
||||||
|
for _, n := range this.addHeaderNames {
|
||||||
|
if n == name {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, n := range this.setHeaderNames {
|
||||||
|
if n == name {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// 判断删除列表中是否包含某个Header
|
// 判断删除列表中是否包含某个Header
|
||||||
func (this *HTTPHeaderPolicy) ContainsDeletedHeader(header string) bool {
|
func (this *HTTPHeaderPolicy) ContainsDeletedHeader(name string) bool {
|
||||||
_, ok := this.deleteHeaderMap[strings.ToUpper(header)]
|
_, ok := this.deleteHeaderMap[strings.ToUpper(name)]
|
||||||
return ok
|
return ok
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user