当前位置: 首页>>代码示例>>Golang>>正文


Golang blobstore.Send函数代码示例

本文整理汇总了Golang中appengine/blobstore.Send函数的典型用法代码示例。如果您正苦于以下问题:Golang Send函数的具体用法?Golang Send怎么用?Golang Send使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了Send函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: downloadTranslationHandler

func downloadTranslationHandler(w http.ResponseWriter, r *http.Request) {
	if r.Method != "GET" {
		panic(&core.Error{http.StatusMethodNotAllowed, ""})
	}

	// parses query parameters
	params, err := url.ParseQuery(r.URL.RawQuery)
	if err != nil {
		panic(&core.Error{http.StatusBadRequest, ""})
	}

	// TODO supports other query params

	blobKey := params.Get("blobKey")

	translations, err := loadTranslations(appengine.NewContext(r), false)
	if err != nil {
		panic(&core.Error{http.StatusInternalServerError, err.Error()})
	}
	for _, t := range translations {
		if (string)(t.BlobKey) == blobKey {
			blobstore.Send(w, appengine.BlobKey(blobKey))
			return
		}
	}

	panic(&core.Error{http.StatusNotFound, ""})
}
开发者ID:ZionSoft,项目名称:Bible-Server,代码行数:28,代码来源:downloadhandler.go

示例2: get

func get(w http.ResponseWriter, r *http.Request) {
	if r.URL.Path == "/" {
		http.Redirect(w, r, WEBSITE, http.StatusFound)
		return
	}
	parts := strings.Split(r.URL.Path, "/")
	if len(parts) == 3 {
		if key := parts[1]; key != "" {
			blobKey := appengine.BlobKey(key)
			bi, err := blobstore.Stat(appengine.NewContext(r), blobKey)
			if err == nil {
				w.Header().Add("X-Content-Type-Options", "nosniff")
				if !imageTypes.MatchString(bi.ContentType) {
					w.Header().Add("Content-Type", "application/octet-stream")
					w.Header().Add(
						"Content-Disposition",
						fmt.Sprintf("attachment; filename=\"%s\"", parts[2]),
					)
				}
				w.Header().Add(
					"Cache-Control",
					fmt.Sprintf("public,max-age=%d", EXPIRATION_TIME),
				)
				blobstore.Send(w, blobKey)
				return
			}
		}
	}
	http.Error(w, "404 Not Found", http.StatusNotFound)
}
开发者ID:omairrazam,项目名称:bapp,代码行数:30,代码来源:main.go

示例3: handleImages

func handleImages(w http.ResponseWriter, r *http.Request) {
	if r.Method != "GET" || r.URL.Path != "/images" {
		serve404(w)
		return
	}
	name := r.FormValue("Name")
	if r.Method != "GET" || r.URL.Path != "/images" || "" == name {
		serve404(w)
		return
	}
	c := appengine.NewContext(r)
	key := datastore.NewKey(c, "Image", name, 0, nil)

	img := Image{}
	err := datastore.Get(c, key, &img)
	if nil != err && datastore.ErrNoSuchEntity != err {
		serveError(c, w, err)
		return
	}
	if datastore.ErrNoSuchEntity == err {
		serve404(w)
		return
	}

	blobstore.Send(w, img.BlobKey)
	return
}
开发者ID:symbiat,项目名称:goblog-1,代码行数:27,代码来源:goblog.go

示例4: getVisualizationFile

// Get a file that is part of a visualization
func getVisualizationFile(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	vars := mux.Vars(r)

	// Get visualization object
	key, err := datastore.DecodeKey(vars["key"])
	if err != nil {
		common.Serve404(w)
		return
	}

	var e model.Visualization
	err = datastore.Get(c, key, &e)
	if err != nil {
		if err == datastore.ErrNoSuchEntity {
			common.Serve404(w)
			return
		}
		common.ServeError(c, w, err)
		return
	}

	// Find blob key
	filename := vars["filename"]
	for i := range e.Files {
		if e.Files[i].Filename == filename {
			blobstore.Send(w, appengine.BlobKey(e.Files[i].BlobKey))
			return
		}
	}

	common.Serve404(w)
}
开发者ID:hamax,项目名称:avy,代码行数:34,代码来源:anif.go

示例5: Download

//Download serves the broadcast from blobstore.
func Download(c util.Context) (err error) {
	p, err := getPresentation(c)
	if err != nil {
		return
	}

	blobstore.Send(c.W, p.BlobKey)
	return
}
开发者ID:sellweek,项目名称:TOGY-server,代码行数:10,代码来源:api.go

示例6: Serve

func (d *gcsDriver) Serve(w http.ResponseWriter, id string, rng driver.Range) (bool, error) {
	if rng.IsValid() {
		w.Header().Set("X-AppEngine-BlobRange", rng.String())
	}
	key, err := blobstore.BlobKeyForFile(d.c, d.path(id))
	if err != nil {
		return false, err
	}
	blobstore.Send(w, key)
	return true, nil
}
开发者ID:rainycape,项目名称:gondola,代码行数:11,代码来源:gcs_appengine.go

示例7: downloadHandler

// downloadHandler serves the zip file generated by zipHandler.
func downloadHandler(c appengine.Context, w http.ResponseWriter, r *http.Request) *appError {
	k, o, err := getOverlay(r)
	if err != nil {
		return appErrorf(err, "overlay not found")
	}
	if o.Zip == "" || o.Zip == zipSentinel {
		return appErrorf(nil, "overlay's zip not generated yet")
	}
	attachment := fmt.Sprintf(`attachment;filename="%s.zip"`, k.Encode())
	w.Header().Add("Content-Disposition", attachment)
	blobstore.Send(w, o.Zip)
	return nil
}
开发者ID:TheAustrianPro,项目名称:overlay-tiler,代码行数:14,代码来源:http.go

示例8: packages

// Serves several package related urls that package.el expects.
//
// First are readmes, which are served from
// /packages/<package-name>-readme.txt.
//
// Second are package contents, which exist for all uploaded versions
// of a packages. They are servered from
// /packages/<package-name>-<package-version>.el
func packages(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	w.Header().Set("Content-Type", "text/plain")
	file := r.URL.Path[strings.LastIndex(r.URL.Path, "/")+1:]
	if readmeRE.MatchString(file) {
		name := file[:strings.LastIndex(file, "-")]
		var p Package
		err := datastore.Get(c, packageKey(c, name), &p)
		if err != nil {
			http.Error(w, err.Error(), http.StatusInternalServerError)
			return
		}
		details, err := decodeDetails(&p.Details)
		if err != nil {
			http.Error(w, err.Error(), http.StatusInternalServerError)
			return
		}
		if len(details.Readme) == 0 {
			fmt.Fprintf(w, "%v", p.Description)
		} else {
			// These \r's will show up as "^M" in the emacs buffer.
			// We don't want that, although hopefully package.el will
			// eventually fix this.
			fmt.Fprintf(w, "%v", strings.Replace(details.Readme, "\r", "", -1))
		}
	} else {
		parts := nameVersionRE.FindStringSubmatch(file)
		if len(parts) < 3 {
			http.Error(w, "Invalid package name",
				http.StatusInternalServerError)
			return
		}
		name := parts[1][:len(parts[1])-1]
		version := parts[2]
		q := datastore.NewQuery("Contents").Filter("Version=", version).
			Ancestor(packageKey(c, name))
		for cursor := q.Run(c); ; {
			var contents Contents
			_, err := cursor.Next(&contents)
			if err == datastore.Done {
				break
			}
			if err != nil {
				http.Error(w, err.Error(),
					http.StatusInternalServerError)
				return
			}
			blobstore.Send(w, appengine.BlobKey(contents.BlobKey))
		}
	}
}
开发者ID:ssaavedra,项目名称:elpa-on-appengine,代码行数:59,代码来源:elpa.go

示例9: handleDownloadImage

// 画像のダウンロード
func handleDownloadImage(w http.ResponseWriter, r *http.Request) {
	if r.Method != "GET" {
		http.Error(w, "リクエストエラー", http.StatusBadRequest)
		return
	}
	c := appengine.NewContext(r)
	g := goon.FromContext(c)
	key := r.FormValue("key")
	ibi := ImageBlobInfo{
		BlobKey: key,
	}
	g.Get(&ibi)
	blobstore.Send(w, appengine.BlobKey(ibi.BlobKey))
}
开发者ID:mako0715,项目名称:sample,代码行数:15,代码来源:endpoints_image.go

示例10: handleRoot

func handleRoot(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)

	datastoreKey := r.URL.Path[1:]
	if len(datastoreKey) > 0 {
		var img Image

		key, err := datastore.DecodeKey(datastoreKey)
		if err == nil {
			if err = datastore.Get(c, key, &img); err == nil {
				blobstore.Send(w, img.BlobKey)
				return
			}
		}
	}

	fmt.Fprint(w, "Hello World!")
}
开发者ID:dannysu,项目名称:imagedatastore,代码行数:18,代码来源:server.go

示例11: getModuleFile

// Get a file that is part of a module
func getModuleFile(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	vars := mux.Vars(r)

	// Get module object
	accKey, _, err := model.GetAccountByDevname(c, vars["devname"])
	if err != nil {
		common.ServeError(c, w, err)
		return
	}
	if accKey == nil {
		common.Serve404(w)
		return
	}
	key := datastore.NewKey(c, "module", vars["name"], 0, accKey)

	var e model.Module
	err = datastore.Get(c, key, &e)
	if err != nil {
		if err == datastore.ErrNoSuchEntity {
			common.Serve404(w)
			return
		}
		common.ServeError(c, w, err)
		return
	}

	// Find blob key
	filename := vars["filename"]
	for i := range e.Files {
		if e.Files[i].Filename == filename {
			blobstore.Send(w, appengine.BlobKey(e.Files[i].BlobKey))
			return
		}
	}

	common.Serve404(w)
}
开发者ID:hamax,项目名称:avy,代码行数:39,代码来源:anif.go

示例12: jobOutputHandler

func jobOutputHandler(w http.ResponseWriter, r *http.Request) {
	path := r.URL.Path
	jobID := path[12:]

	c := appengine.NewContext(r)

	state := &job.State{ID: jobID}
	if err := datastore.Get(c, state.GetKey(c), state); err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
	}

	if state.OutputData == "" {
		http.Error(w, "No processing output", http.StatusBadRequest)
	}

	blobKey, err := blobstore.BlobKeyForFile(c, state.OutputData)
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
	}

	w.Header().Set("Cache-Control", "public,max-age:60000")
	blobstore.Send(w, blobKey)
}
开发者ID:jbeshir,项目名称:dreampics_frontend,代码行数:23,代码来源:job.go

示例13: handleServeImgById

func handleServeImgById(w http.ResponseWriter, r *http.Request) {
	if r.FormValue("id") != "none" {
		c := appengine.NewContext(r)
		oft, _ := model.GetOferta(c, r.FormValue("id"))
		if oft.BlobKey != "none" {
			var imgprops image.ServingURLOptions
			imgprops.Secure = true
			imgprops.Size = 400
			imgprops.Crop = false

			if url, err := image.ServingURL(c, oft.BlobKey, &imgprops); err != nil {
				c.Infof("Cannot construct ServingURL : %v", r.FormValue("id"))
				blobstore.Send(w, oft.BlobKey)
			} else {
				http.Redirect(w, r, url.String(), http.StatusFound)
			}
		} else {
			w.WriteHeader(http.StatusNotFound)
			//w.Header().Set("Content-Type", "text/plain; charset=utf-8")
			//io.WriteString(w, "404 - Not Found")
		}
	}
	return
}
开发者ID:clicker360,项目名称:ebfmex-pub,代码行数:24,代码来源:ofimage.go

示例14: store

func store(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	c.Debugf("20")

	blobstore.Send(w, appengine.BlobKey(r.FormValue("blobKey")))
}
开发者ID:ghostnotes,项目名称:HelloGo,代码行数:6,代码来源:blobstoresample.go

示例15: blob

func blob(resp http.ResponseWriter, req *http.Request) {
	_, id := path.Split(req.URL.Path)
	blobstore.Send(resp, appengine.BlobKey(id))
}
开发者ID:dbratus,项目名称:impack,代码行数:4,代码来源:web.go


注:本文中的appengine/blobstore.Send函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。