google.golang.org/appengine/blobstore 包 (v1.6.8)

blobstore 包为 App Engine 的持久性 Blob 存储服务提供了一个客户端。

函数

func BlobKeyForFile

func BlobKeyForFile(c context.Context, filename string) (appengine.BlobKey, error)

BlobKeyForFile 会返回 Google Storage 文件的 BlobKey。 文件名格式应为“/gs/bucket_name/object_name”。

func Delete

func Delete(c context.Context, blobKey appengine.BlobKey) error

Delete 将删除一个 Blob。

func DeleteMulti

func DeleteMulti(c context.Context, blobKey []appengine.BlobKey) error

DeleteMulti 将删除多个 Blob。

func ParseUpload

func ParseUpload(req *http.Request) (blobs map[string][]*BlobInfo, other url.Values, err error)

在用户成功上传 blob 之后,ParseUpload 会解析您的应用从 App Engine 获取的合成 POST 请求。确定请求之后,ParseUpload 会返回已接收的 Blob 的映射(由 HTML 表单元素名称键控)以及其他非 Blob POST 参数。

func Send

func Send(response http.ResponseWriter, blobKey appengine.BlobKey)

Send 会设置响应的标头,以指示 App Engine 将 blob 作为响应正文发送。这比手动读取并写入响应的方法更加高效,也不存在一般的响应大小限制。

func UploadURL

func UploadURL(c context.Context, successPath string, opts *UploadURLOptions) (*url.URL, error)

UploadURL 会为用户将要填写的表单创建一个上传网址,并在表单的 POST 操作完成后传递要加载的应用路径。这些网址会过期,并且不应重新使用。opts 参数可以是 nil。

BlobInfo

type BlobInfo struct {
	BlobKey      appengine.BlobKey
	ContentType  string    `datastore:"content_type"`
	CreationTime time.Time `datastore:"creation"`
	Filename     string    `datastore:"filename"`
	Size         int64     `datastore:"size"`
	MD5          string    `datastore:"md5_hash"`

	// ObjectName is the Google Cloud Storage name for this blob.
	ObjectName string `datastore:"gs_object_name"`
}

BlobInfo 是数据存储区中存储的 blob 元数据。文件名可能为空。

func Stat

func Stat(c context.Context, blobKey appengine.BlobKey) (*BlobInfo, error)

Stat 会返回提供的 blobKey 对应的 BlobInfo。如果找不到该键的 blob,则 Stat 会返回 datastore.ErrNoSuchEntity。

Reader

type Reader interface {
	io.Reader
	io.ReaderAt
	io.Seeker
}

Reader 是一个 Blob 阅读器。

func NewReader

func NewReader(c context.Context, blobKey appengine.BlobKey) Reader

NewReader 会为 blob 返回一个读接口。它始终会成功完成;如果 Blob 不存在,则在初次读取时会报告一条错误。

UploadURLOptions

type UploadURLOptions struct {
	MaxUploadBytes        int64 // optional
	MaxUploadBytesPerBlob int64 // optional

	// StorageBucket specifies the Google Cloud Storage bucket in which
	// to store the blob.
	// This is required if you use Cloud Storage instead of Blobstore.
	// Your application must have permission to write to the bucket.
	// You may optionally specify a bucket name and path in the format
	// "bucket_name/path", in which case the included path will be the
	// prefix of the uploaded object's name.
	StorageBucket string
}

UploadURLOptions 是用于创建上传网址的选项。