luci: Index | Files

package artifactcontent

import ""

Package artifactcontent can serve artifact content via plain HTTP securely.


Package Files

doc.go rbecas.go server.go

func RBEConn Uses

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

RBEConn creates a gRPC connection to RBE authenticated as self.

func RegisterRBEInstanceFlag Uses

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

RegisterRBEInstanceFlag registers -artifact-rbe-instance flag.

type HostnameProvider Uses

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 Uses

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 Uses

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 Uses

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

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

func (*Server) InstallHandlers Uses

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.

Package artifactcontent imports 29 packages (graph) and is imported by 4 packages. Updated 2021-01-27. Refresh now. Tools for package owners.