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() 方法不是執行緒安全的,因此應該只在所有掃瞄程序完成後才呼叫。
