示例#1
0
func (c *Context) blobstore() *blobstore.Blobstore {
	bs := c.app.cfg.Blobstore
	if bs == nil {
		panic(errNoDefaultBlobstore)
	}
	b, err := blobstore.New(bs)
	if err != nil {
		panic(err)
	}
	if drv, ok := b.Driver().(contextSetter); ok {
		drv.SetContext(appengine.NewContext(c.R))
	}
	return b
}
示例#2
0
文件: std.go 项目: rainycape/gondola
func (app *App) blobstore() (*blobstore.Blobstore, error) {
	if app.store == nil {
		var err error
		app.locked(func() {
			if app.store != nil {
				return
			}
			if app.parent != nil {
				app.store, err = app.parent.blobstore()
				return
			}
			bs := app.cfg.Blobstore
			if bs == nil {
				err = errNoDefaultBlobstore
				return
			}
			app.store, err = blobstore.New(bs)
		})
		if err != nil {
			return nil, err
		}
	}
	return app.store, nil
}