アンドロイドのブレークポイントアップロードを実現する方法は何ですか?

Androidのブレークポイントアップロードの実装方法は、次の2つの方法で実現できます。

  1. HttpClientやOkHttpを使用したRangeリクエスト:ファイルをアップロードする際に、リクエストヘッダーにRangeフィールドを設定し、ファイルの開始位置を指定してサーバーに送信します。サーバーはリクエストを受け取ると、指定された位置からファイルの書き込みを続行し、断点アップロードを実現します。この方法は、サーバーが断点継続機能をサポートしている必要があります。

サンプルコード(OkHttpを使用):

OkHttpClient client = new OkHttpClient();

File file = new File("path/to/file");
long fileSize = file.length();

Request request = new Request.Builder()
    .url("http://example.com/upload")
    .addHeader("Content-Range", "bytes " + uploadedBytes + "-" + (fileSize - 1) + "/" + fileSize)
    .post(RequestBody.create(MediaType.parse("application/octet-stream"), file))
    .build();

Response response = client.newCall(request).execute();
  1. FTPやSFTPプロトコルを使用する:AndroidアプリでFTPやSFTPライブラリを使用して、サーバーに接続し、ファイルをアップロードする際には途中からの再開を実現する。

サンプルコード(Apache Commons Netライブラリを使用したFTP断片アップロードの実装):

FTPClient ftpClient = new FTPClient();
ftpClient.connect("ftp.example.com");
ftpClient.login("username", "password");

File file = new File("path/to/file");
long uploadedBytes = ftpClient.mlistFile("remote/file").getSize();
ftpClient.setRestartOffset(uploadedBytes);

InputStream inputStream = new FileInputStream(file);
ftpClient.storeFile("remote/file", inputStream);
inputStream.close();

ftpClient.logout();
ftpClient.disconnect();

注目すべき点は、一時停止アップロード機能を使用するには、サーバーが一時停止再開をサポートし、適切な権限と設定が必要であることです。

bannerAds