本文整理汇总了Golang中github.com/thoas/picfit/image.ImageFile.Key方法的典型用法代码示例。如果您正苦于以下问题:Golang ImageFile.Key方法的具体用法?Golang ImageFile.Key怎么用?Golang ImageFile.Key使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/thoas/picfit/image.ImageFile
的用法示例。
在下文中一共展示了ImageFile.Key方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ImageFileFromRequest
func (a *Application) ImageFileFromRequest(req *Request, async bool, load bool) (*image.ImageFile, error) {
var file *image.ImageFile = &image.ImageFile{
Key: req.Key,
Storage: a.DestStorage,
Headers: map[string]string{},
}
var err error
key := a.WithPrefix(req.Key)
// Image from the KVStore found
stored, err := gokvstores.String(req.Connection.Get(key))
file.Filepath = stored
if stored != "" {
a.Logger.Infof("Key %s found in kvstore: %s", key, stored)
if load {
file, err = image.FromStorage(a.DestStorage, stored)
if err != nil {
return nil, err
}
}
} else {
a.Logger.Infof("Key %s not found in kvstore", key)
// Image not found from the KVStore, we need to process it
// URL available in Query String
if req.URL != nil {
file, err = image.FromURL(req.URL)
} else {
// URL provided we use http protocol to retrieve it
file, err = image.FromStorage(a.SourceStorage, req.Filepath)
}
if err != nil {
return nil, err
}
file, err = a.Engine.Transform(file, req.Operation, req.QueryString)
if err != nil {
return nil, err
}
file.Filepath = fmt.Sprintf("%s.%s", a.ShardFilename(req.Key), file.Format())
}
file.Key = req.Key
file.Storage = a.DestStorage
file.Headers["Content-Type"] = file.ContentType()
file.Headers["ETag"] = req.Key
if stored == "" {
if async == true {
go a.Store(req.Filepath, file)
} else {
err = a.Store(req.Filepath, file)
}
}
return file, err
}