Skip to content
Snippets Groups Projects
  • Matthew Jordan's avatar
    22e23408
    res/res_http_media_cache: Add an HTTP(S) backend for the core media cache · 22e23408
    Matthew Jordan authored
    This patch adds a bucket backend for the core media cache that interfaces to a
    remote HTTP server. When a media item is requested in the cache, the cache will
    query its bucket backends to see if they can provide the media item. If that
    media item has a scheme of HTTP or HTTPS, this backend will be invoked.
    
    The backend provides callbacks for the following:
     * create - this will always retrieve the URI specified by the provided
                bucket_file, and store it in the file specified by the object.
     * retrieve - this will pull the URI specified and store it in a temporary
                  file. It is then up to the media cache to move/rename this file
                  if desired.
     * delete - destroys the file associated with the bucket_file.
     * stale - if the bucket_file has expired, based on received HTTP headers from
               the remote server, or if the ETag on the server no longer matches
               the ETag stored on the bucket_file, the resource is determined to be
               stale.
    
    Note that the backend respects the ETag, Expires, and Cache-Control headers
    provided by the HTTP server it is querying.
    
    ASTERISK-25654
    
    Change-Id: Ie201c2b34cafc0c90a7ee18d7c8359afaccc5250
    22e23408
    History
    res/res_http_media_cache: Add an HTTP(S) backend for the core media cache
    Matthew Jordan authored
    This patch adds a bucket backend for the core media cache that interfaces to a
    remote HTTP server. When a media item is requested in the cache, the cache will
    query its bucket backends to see if they can provide the media item. If that
    media item has a scheme of HTTP or HTTPS, this backend will be invoked.
    
    The backend provides callbacks for the following:
     * create - this will always retrieve the URI specified by the provided
                bucket_file, and store it in the file specified by the object.
     * retrieve - this will pull the URI specified and store it in a temporary
                  file. It is then up to the media cache to move/rename this file
                  if desired.
     * delete - destroys the file associated with the bucket_file.
     * stale - if the bucket_file has expired, based on received HTTP headers from
               the remote server, or if the ETag on the server no longer matches
               the ETag stored on the bucket_file, the resource is determined to be
               stale.
    
    Note that the backend respects the ETag, Expires, and Cache-Control headers
    provided by the HTTP server it is querying.
    
    ASTERISK-25654
    
    Change-Id: Ie201c2b34cafc0c90a7ee18d7c8359afaccc5250
To find the state of this project's repository at the time of any of these versions, check out the tags.