Class LfsProtocolServlet

  • All Implemented Interfaces:
    java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

    public abstract class LfsProtocolServlet
    extends javax.servlet.http.HttpServlet
    LFS protocol handler implementing the LFS batch API [1] [1] https://github.com/github/git-lfs/blob/master/docs/api/v1/http-v1-batch.md
    Since:
    4.3
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void doPost​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
      protected abstract LargeFileRepository getLargeFileRepository​(LfsProtocolServlet.LfsRequest request, java.lang.String path, java.lang.String auth)
      Get the large file repository for the given request and path.
      private void sendError​(javax.servlet.http.HttpServletResponse rsp, java.io.Writer writer, int status, java.lang.String message)  
      • Methods inherited from class javax.servlet.http.HttpServlet

        doDelete, doGet, doHead, doOptions, doPut, doTrace, getLastModified, service, service
      • Methods inherited from class javax.servlet.GenericServlet

        destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOG

        private static final org.slf4j.Logger LOG
      • CONTENTTYPE_VND_GIT_LFS_JSON

        private static final java.lang.String CONTENTTYPE_VND_GIT_LFS_JSON
        See Also:
        Constant Field Values
      • SC_RATE_LIMIT_EXCEEDED

        private static final int SC_RATE_LIMIT_EXCEEDED
        See Also:
        Constant Field Values
      • SC_BANDWIDTH_LIMIT_EXCEEDED

        private static final int SC_BANDWIDTH_LIMIT_EXCEEDED
        See Also:
        Constant Field Values
    • Constructor Detail

      • LfsProtocolServlet

        public LfsProtocolServlet()
    • Method Detail

      • getLargeFileRepository

        protected abstract LargeFileRepository getLargeFileRepository​(LfsProtocolServlet.LfsRequest request,
                                                                      java.lang.String path,
                                                                      java.lang.String auth)
                                                               throws LfsException
        Get the large file repository for the given request and path.
        Parameters:
        request - the request
        path - the path
        auth - the Authorization HTTP header
        Returns:
        the large file repository storing large files.
        Throws:
        LfsException - implementations should throw more specific exceptions to signal which type of error occurred:
        LfsValidationError
        when there is a validation error with one or more of the objects in the request
        LfsRepositoryNotFound
        when the repository does not exist for the user
        LfsRepositoryReadOnly
        when the user has read, but not write access. Only applicable when the operation in the request is "upload"
        LfsRateLimitExceeded
        when the user has hit a rate limit with the server
        LfsBandwidthLimitExceeded
        when the bandwidth limit for the user or repository has been exceeded
        LfsInsufficientStorage
        when there is insufficient storage on the server
        LfsUnavailable
        when LFS is not available
        LfsException
        when an unexpected internal server error occurred
        Since:
        4.7
      • doPost

        protected void doPost​(javax.servlet.http.HttpServletRequest req,
                              javax.servlet.http.HttpServletResponse res)
                       throws javax.servlet.ServletException,
                              java.io.IOException
        Overrides:
        doPost in class javax.servlet.http.HttpServlet
        Throws:
        javax.servlet.ServletException
        java.io.IOException
      • sendError

        private void sendError​(javax.servlet.http.HttpServletResponse rsp,
                               java.io.Writer writer,
                               int status,
                               java.lang.String message)