本文整理匯總了Golang中github.com/app-kit/go-appkit.File.SetBackend方法的典型用法代碼示例。如果您正苦於以下問題:Golang File.SetBackend方法的具體用法?Golang File.SetBackend怎麽用?Golang File.SetBackend使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/app-kit/go-appkit.File
的用法示例。
在下文中一共展示了File.SetBackend方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: BuildFile
func (h FileService) BuildFile(file kit.File, user kit.User, deleteDir, deleteFile bool) apperror.Error {
if h.DefaultBackend == nil {
return &apperror.Err{
Code: "no_default_backend",
Message: "Cant build a file without a default backend.",
}
}
filePath := file.GetTmpPath()
if filePath == "" {
return &apperror.Err{
Code: "no_tmp_path",
Message: "You must set TmpPath on a file before building it.",
Public: true,
}
}
if file.GetBackendName() == "" {
file.SetBackendName(h.DefaultBackend().Name())
}
backend := h.Backend(file.GetBackendName())
if backend == nil {
return &apperror.Err{
Code: "unknown_backend",
Message: fmt.Sprintf("The backend %v does not exist", file.GetBackendName()),
}
}
file.SetBackend(backend)
if file.GetBucket() == "" {
return &apperror.Err{
Code: "missing_bucket",
Message: "Bucket must be set on the file",
}
}
stat, err := os.Stat(filePath)
if err != nil {
if err == os.ErrNotExist {
return &apperror.Err{
Code: "file_not_found",
Message: fmt.Sprintf("File %v does not exist", filePath),
}
}
return apperror.Wrap(err, "stat_error",
fmt.Sprintf("Could not get file stats for file at %v: %v", filePath, err))
}
if stat.IsDir() {
return apperror.New("path_is_directory")
}
// Build the hash.
hash, err2 := utils.BuildFileMD5Hash(filePath)
if err2 != nil {
return err2
}
file.SetHash(hash)
pathParts := strings.Split(filePath, string(os.PathSeparator))
fullName := pathParts[len(pathParts)-1]
nameParts := strings.Split(fullName, ".")
// Determine extension.
extension := ""
if len(nameParts) > 1 {
extension = nameParts[len(nameParts)-1]
}
file.SetFullName(fullName)
file.SetSize(stat.Size())
// Determine mime type.
mimeType := GetMimeType(filePath)
if mimeType == "" {
mimeType = mime.TypeByExtension("." + extension)
}
file.SetMime(mimeType)
if strings.HasPrefix(mimeType, "image") {
file.SetIsImage(true)
file.SetMediaType(MEDIA_TYPE_IMAGE)
// Determine image info.
imageInfo, err := GetImageInfo(filePath)
if imageInfo != nil {
file.SetWidth(int(imageInfo.Width))
file.SetHeight(int(imageInfo.Height))
} else {
h.Registry().Logger().Warningf("Could not determine image info: %v", err)
}
}
if strings.HasPrefix(mimeType, "video") {
file.SetMediaType(MEDIA_TYPE_VIdEO)
}
//.........這裏部分代碼省略.........