Package artifactcontent can serve artifact content via plain HTTP securely.



This section is empty.


This section is empty.


func RBEConn

func RBEConn(ctx context.Context) (*grpc.ClientConn, error)

RBEConn creates a gRPC connection to RBE authenticated as self.

func RegisterRBEInstanceFlag

func RegisterRBEInstanceFlag(fs *flag.FlagSet, target *string)

RegisterRBEInstanceFlag registers -artifact-rbe-instance flag.


type HostnameProvider

type HostnameProvider func(requestHost string) string

HostnameProvider returns a hostname to use in generated signed URLs.

As input it accepts `host` metadata value of the GetArtifacts etc. requests. It may be an empty string. HostnameProvider must return some host name in this case too.

type Server

type Server struct {
	// Use http:// (not https://) for generated URLs.
	InsecureURLs bool

	// Returns a hostname to use in generated signed URLs.
	HostnameProvider HostnameProvider

	// Reads a blob from RBE-CAS.
	ReadCASBlob func(ctx context.Context, req *bytestream.ReadRequest) (bytestream.ByteStream_ReadClient, error)

	// Full name of the RBE-CAS instance used to store artifacts,
	// e.g. "projects/luci-resultdb/instances/artifacts".
	RBECASInstanceName string
	// contains filtered or unexported fields

Server can serve artifact content, and generate signed URLs to the content.

func (*Server) GenerateSignedURL

func (s *Server) GenerateSignedURL(ctx context.Context, requestHost, artifactName string) (url string, expiration time.Time, err error)

GenerateSignedURL generates a signed HTTPS URL back to this server. The returned token works only with the same artifact name.

func (*Server) Init

func (s *Server) Init(ctx context.Context) error

Init initializes the server. It must be called before calling other methods.

func (*Server) InstallHandlers

func (s *Server) InstallHandlers(r *router.Router)

InstallHandlers installs handlers to serve artifact content.

May be called multiple times to install the handler into multiple virtual hosts.