aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2018-05-29 23:52:27 -0700
committerChris Lu <chris.lu@gmail.com>2018-05-29 23:52:27 -0700
commit2d7dea1a091ef7d391188bae82c196e58980d535 (patch)
treec8ac133c4983587ad4679c74802dcdfa6c2dca9c
parent8a48baa0563ac94b5e84b8b4fb2ffac34c8d8ff8 (diff)
downloadseaweedfs-2d7dea1a091ef7d391188bae82c196e58980d535.tar.xz
seaweedfs-2d7dea1a091ef7d391188bae82c196e58980d535.zip
a little refactoring
-rw-r--r--weed/command/filer_copy.go31
1 files changed, 20 insertions, 11 deletions
diff --git a/weed/command/filer_copy.go b/weed/command/filer_copy.go
index 3b8193cd1..5a878e675 100644
--- a/weed/command/filer_copy.go
+++ b/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 {
// 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
@@ -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 {
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
+}