Interface DownloadServiceGrpc.AsyncService

All Known Implementing Classes:
DownloadServiceGrpc.DownloadServiceImplBase, DownloadServiceImpl
Enclosing class:
DownloadServiceGrpc

public static interface DownloadServiceGrpc.AsyncService
Service for downloading content from remote URLs through the SoulFire server.
This service acts as a proxy, allowing clients to fetch remote resources using
the server's network connection and optionally through a configured proxy.
Use cases include:
- Downloading resources that may be blocked from the client's network
- Fetching content through a specific proxy for anonymity or geo-unlocking
- Centralizing external API calls through the server
The service uses a Reactor Netty HTTP client with:
- 5-second response timeout
- Automatic compression support
- Default Accept, Accept-Language, and User-Agent headers
Authorization:
- Requires a valid JWT token
- Caller must have DOWNLOAD_URL permission for the specified instance
Error handling:
- Returns gRPC INTERNAL status on network errors, timeouts, or server failures
- The error description contains details about the failure
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    download(DownloadRequest request, io.grpc.stub.StreamObserver<DownloadResponse> responseObserver)
    Downloads content from the specified URI and returns the response.
  • Method Details

    • download

      default void download(DownloadRequest request, io.grpc.stub.StreamObserver<DownloadResponse> responseObserver)
      Downloads content from the specified URI and returns the response.
      Makes an HTTP GET request to the URI specified in the request, optionally
      routing through a proxy. Custom headers can be provided to customize the request.
      Parameters:
        request - Contains the target URI, instance ID for permissions, optional headers,
                  and optional proxy configuration
      Returns:
        The downloaded content as bytes, along with response headers and HTTP status code
      Errors:
        PERMISSION_DENIED - Caller lacks DOWNLOAD_URL permission for the instance
        INTERNAL - Network error, connection timeout, invalid URI, or other server error