aboutsummaryrefslogtreecommitdiff
path: root/connector/mediaobject.go
diff options
context:
space:
mode:
Diffstat (limited to 'connector/mediaobject.go')
-rw-r--r--connector/mediaobject.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/connector/mediaobject.go b/connector/mediaobject.go
new file mode 100644
index 0000000..75635ee
--- /dev/null
+++ b/connector/mediaobject.go
@@ -0,0 +1,50 @@
+package connector
+
+import (
+ "io"
+ "net/http"
+ "os"
+ "path/filepath"
+
+ log "github.com/sirupsen/logrus"
+)
+
+type FileMediaObject struct {
+ Path string
+}
+
+func (m *FileMediaObject) Filename() string {
+ return filepath.Base(m.Path)
+}
+
+func (m *FileMediaObject) Size() int64 {
+ fi, err := os.Stat(m.Path)
+ if err != nil {
+ log.Fatal(err)
+ }
+ return fi.Size()
+}
+
+func (m *FileMediaObject) Mimetype() string {
+ f, err := os.Open(m.Path)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer f.Close()
+
+ buffer := make([]byte, 512)
+ _, err = f.Read(buffer)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ return http.DetectContentType(buffer)
+}
+
+func (m *FileMediaObject) Read() (io.ReadCloser, error) {
+ return os.Open(m.Path)
+}
+
+func (m *FileMediaObject) URL() string {
+ return ""
+}