IFileDownloader

public interface IFileDownloader

com.android.tradefed.build.IFileDownloader


下載遠端檔案的介面。

摘要

公用方法

default void acquireDownloadPermit()

如果支援並行限制,請取得下載許可。

default void downloadFile(String remoteFilePath, File destFile, long startOffset, long size)

downloadFile(String,File) 的替代形式,可讓呼叫端下載檔案的某個部分,並儲存至特定目的地檔案。

abstract void downloadFile(String relativeRemotePath, File destFile)

downloadFile(String) 的替代形式,可讓呼叫端指定遠端內容應放置的目標檔案。

abstract File downloadFile(String remoteFilePath)

將遠端檔案下載至本機磁碟的暫存檔案。

default void downloadZippedFiles(File destDir, String remoteFilePath, List<String> includeFilters, List<String> excludeFilters)

以遠端 ZIP 檔案的形式,下載符合指定篩選條件的檔案。

default boolean isFresh(File localFile, String remoteFilePath)

檢查本機檔案是否為最新版本。

default void releaseDownloadPermit()

如果支援並行限制,請發布下載許可。

公用方法

acquireDownloadPermit

public void acquireDownloadPermit ()

如果支援並行限制,請取得下載許可。

downloadFile

public void downloadFile (String remoteFilePath, 
                File destFile, 
                long startOffset, 
                long size)

downloadFile(String,File) 的替代形式,可讓呼叫端下載檔案的某個部分,並儲存至特定目的地檔案。

參數
remoteFilePath String:要下載的檔案遠端路徑,相對於實作專屬的根目錄。

destFile File:要將下載內容放入的檔案。不應存在。

startOffset long:遠端檔案中的起始偏移。

size long:要從遠端檔案下載的位元組數。設為負值即可下載整個檔案。

擲回
BuildRetrievalError 如果無法下載檔案

downloadFile

public abstract void downloadFile (String relativeRemotePath, 
                File destFile)

downloadFile(String) 的替代形式,可讓呼叫端指定應放置遠端內容的目標檔案。

參數
relativeRemotePath String:要下載的檔案遠端路徑,相對於實作專屬的根目錄。

destFile File:要將下載內容放入的檔案。不應存在。

擲回
BuildRetrievalError 如果無法下載檔案

downloadFile

public abstract File downloadFile (String remoteFilePath)

將遠端檔案下載至本機磁碟的暫存檔案。

參數
remoteFilePath String:要下載的檔案的遠端路徑,相對於實作專屬根目錄。

傳回
File 暫時下載的本機檔案 File

擲回
BuildRetrievalError 如果無法下載檔案

downloadZippedFiles

public void downloadZippedFiles (File destDir, 
                String remoteFilePath, 
                List<String> includeFilters, 
                List<String> excludeFilters)

以遠端 ZIP 檔案的形式,下載符合指定篩選條件的檔案。

只有在遠端 ZIP 檔案中的檔案路徑符合任何包含篩選器,但不符合排除篩選器時,才會下載該檔案。

參數
destDir File:要將下載內容放入的檔案。

remoteFilePath String:要下載的檔案的遠端路徑,相對於實作專屬根目錄。

includeFilters List:要下載相符檔案的篩選器清單。

excludeFilters List:要略過下載相符檔案的篩選器清單。

擲回
BuildRetrievalError 如果無法下載檔案。
java.io.IOException
IOException

isFresh

public boolean isFresh (File localFile, 
                String remoteFilePath)

檢查本機檔案是否為最新版本。如果本機檔案與遠端檔案相同,則為最新版本。如果不是,本機檔案就是過時的檔案。這項功能主要用於快取。預設實作一律會傳回 true,因此如果檔案不可變更,就不需要檢查是否為最新版本。

參數
localFile File:本機檔案。

remoteFilePath String:遠端檔案路徑。

傳回
boolean 如果本機檔案為最新版本,則為 True,否則為 False。

擲回
com.android.tradefed.build.BuildRetrievalError
BuildRetrievalError

releaseDownloadPermit

public void releaseDownloadPermit ()

如果支援並行下載限制,請釋出下載許可。