Trend Vision One™ 檔案安全的 Go SDK API 參考
建立新實例
創建客戶端對象的新實例,並配置基本設置,包括驗證/授權憑證(API 金鑰)和首選服務區域。
func NewClient(key string, region string) (c *AmaasClient, e error)
參數
參數
|
說明 |
金鑰 (字串) |
如果未設置環境變數
TM_AM_AUTH_KEY ,則必須提供有效的 API 金鑰。 |
區域 |
您獲取 API 金鑰的區域。提供的值必須是 Vision One 區域之一:
|
返回值
參數 | 說明 |
c (*AmaasClient)
|
指向客戶端物件的指標。如果遇到錯誤則為 Nil
|
e (錯誤) |
如果沒有遇到錯誤則為 Nil;否則為非 Nil。
|
錯誤條件
- 驗證無效
- 無效的區域
提交內容
提交檔案或緩衝區的內容以進行掃描。
func (ac *AmaasClient) ScanFile(filePath string, tags []string) (resp string, e error)
func (ac *AmaasClient) ScanBuffer(buffer []byte, identifier string, tags []string) (resp string, e error)
參數
參數
|
說明
|
文件路徑 (string)
|
要掃瞄的檔案路徑
|
緩衝區 ([]byte)
|
包含要掃瞄的資料緩衝區
|
識別碼 (字串)
|
呼叫者選擇的字串與掃瞄相關,將在 JSON 回應中作為
fileName 名稱/值的一部分返回;可以為空 |
標籤 ([]string)
|
用於掃描的標籤。您最多可以使用 8 個標籤,每個標籤的長度不能超過 63。
|
返回值
參數
|
說明
|
resp (字串)
|
描述掃瞄結果的 JSON 格式回應。
|
e (錯誤)
|
如果沒有遇到錯誤則為 Nil;否則為非 Nil。
|
範例 JSON 回應
{ "scannerVersion":"1.0.0-27", "schemaVersion":"1.0.0", "scanResult": 1, "scanId": "25072030425f4f4d68953177d0628d0b", "scanTimestamp": "2022-11-02T00:55:31Z", "fileName": "EICAR_TEST_FILE-1.exe", "filePath": "AmspBvtTestSamples/BVT_RightClickScan_DS/unclean/EICAR_TEST_FILE-1.exe", "foundMalwares": [ { "fileName": "Eicar.exe", "malwareName": "Eicar_test_file" } ], "fileSHA1":"fc7042d1d8bbe655ab950355f86a81ded9ee4903", "fileSHA256":"1b9f8773919a1770fec35e2988650fde3adaae81a3ac2ad77b67cafd013afcdc" }
當在掃描對象中檢測到惡意內容時,
scanResult
將顯示非零值。否則,該值將為 0
。此外,當檢測到惡意程式時,foundMalwares
將包含一個或多個 fileName
和 malwareName
的名稱/值對。fileName
將是檢測到的惡意程式的檔案名稱,而 malwareName
將是發現的病毒/惡意程式的名稱。錯誤條件
- 驗證無效
- 指定的路徑無效
- 請求超時(超過期限)
- 使用了不相容的客戶端
- 服務無法連接
- 客戶端尚未準備好進行操作
釋放用戶端使用的內部資源
釋放用戶端使用的內部資源。應該在完成掃描且不再需要用戶端物件後才調用。
func (ac *AmaasClient) Destroy()
配置日誌級別
您可以配置 SDK 的活動日誌級別。此更改將全局應用於所有客戶端實例。默認級別為
LogLevelOff
,對應於所有日誌已禁用。如果日誌已啟動,除非使用 ConfigLoggingCallback()
配置自定義日誌,否則日誌將寫入 stdout。參數
參數
|
說明
|
級別 (LogLevel)
|
有效值為
LogLevelOff 。 |
設定自訂記錄
您可以透過提供自訂回呼函數來設定自訂日誌記錄,該函數會在 SDK 想要記錄日誌時被調用。
func ConfigLoggingCallback(f func(level LogLevel, levelStr string, format string, a ...interface{}))
參數
參數
|
說明
|
f (函數)
|
具有原型的函數
func(level LogLevel, levelStr string, format string, a ...interface{}) |
執行緒安全性
ScanFile()
或 ScanBuffer()
被設計為線程安全。您應該能夠從多個線程同時調用 ScanFile()
,而無需使用互斥鎖或其他同步機制來保護 ScanFile()
。Destroy()
方法不是執行緒安全的,因此應該只在所有掃瞄程序完成後才呼叫。