Browse Source

a little refactoring

pull/664/head
Chris Lu 7 years ago
parent
commit
2d7dea1a09
  1. 31
      weed/command/filer_copy.go

31
weed/command/filer_copy.go

@ -149,17 +149,9 @@ func doEachCopy(fileOrDir string, host string, path string) bool {
func uploadFileAsOne(filerUrl string, urlPath string, assignResult *operation.AssignResult, f *os.File, fi os.FileInfo) bool { func uploadFileAsOne(filerUrl string, urlPath string, assignResult *operation.AssignResult, f *os.File, fi os.FileInfo) bool {
// upload the file content // upload the file content
ext := strings.ToLower(path.Ext(f.Name()))
head := make([]byte, 512)
f.Seek(0, 0)
n, err := f.Read(head)
if err != nil {
fmt.Printf("read head of %v: %v\n", f.Name(), err)
return false
}
f.Seek(0, 0)
mimeType := http.DetectContentType(head[:n])
isGzipped := ext == ".gz"
mimeType := detectMimeType(f)
isGzipped := isGzipped(f.Name())
targetUrl := "http://" + assignResult.Url + "/" + assignResult.Fid targetUrl := "http://" + assignResult.Url + "/" + assignResult.Fid
@ -186,3 +178,20 @@ func uploadFileAsOne(filerUrl string, urlPath string, assignResult *operation.As
func uploadFileInChunks(filerUrl string, path string, assignResult *operation.AssignResult, f *os.File, chunkCount int) bool { func uploadFileInChunks(filerUrl string, path string, assignResult *operation.AssignResult, f *os.File, chunkCount int) bool {
return false return false
} }
func isGzipped(filename string) bool {
return strings.ToLower(path.Ext(filename)) == ".gz"
}
func detectMimeType(f *os.File) string {
head := make([]byte, 512)
f.Seek(0, 0)
n, err := f.Read(head)
if err != nil {
fmt.Printf("read head of %v: %v\n", f.Name(), err)
return "application/octet-stream"
}
f.Seek(0, 0)
mimeType := http.DetectContentType(head[:n])
return mimeType
}
Loading…
Cancel
Save