widdix/attachmentav-sdk-java
GitHub: widdix/attachmentav-sdk-java
由 Sophos 引擎驱动的 Java 病毒扫描 SDK,支持同步与异步方式扫描本地文件、URL 及 Amazon S3 对象以检测恶意软件。
Stars: 0 | Forks: 0
# attachmentav-sdk-java
一个用于将病毒和恶意软件扫描功能集成到 Java 应用程序中的 SDK。借助由 Sophos 提供支持的 attachmentAV,扫描文件以检测病毒、木马和其他类型的恶意软件。
## 什么是 attachmentAV?
[attachmentAV](https://attachmentav.com) 为 SaaS 和云平台提供防病毒服务。扫描您存储在云端的文件和附件,以检测病毒、蠕虫和木马。attachmentAV 能够实时检测恶意软件。支持 Amazon S3、Atlassian、Cloudflare R2、Salesforce、WordPress 等。
[attachmentAV 病毒和恶意软件扫描 API](https://attachmentav.com/solution/virus-malware-scan-api/) 提供了一个 REST API,允许您将恶意软件扫描集成到您的应用程序中。该解决方案提供两个版本:
* [attachmentAV 病毒扫描 API (SaaS)](https://attachmentav.com/help/virus-malware-scan-api/setup-guide/):通过全面托管的服务快速入门
* [attachmentAV 病毒扫描 API (在 AWS 上自托管)](https://attachmentav.com/help/virus-malware-scan-api-aws/setup-guide/):在 AWS 上部署可用于生产环境的 API
attachmentAV 提升了信息安全的标杆。我们的解决方案通过了 ISO 27001 认证并符合 GDPR 标准。我们正在建立、实施、维护和持续改进信息安全管理体系 (ISMS)。敏感数据在传输和静态存储过程中均经过加密,并在处理完成后立即删除。超过 1,000 名客户信任我们的恶意软件防护技术。
## 安装 SDK
在 Maven Central 上找到最新版本的 [virus-scan-sdk](https://central.sonatype.com/artifact/com.attachmentav/virus-scan-sdk) 并将其添加到您项目的依赖项中。
```
com.attachmentav
virus-scan-sdk
0.4.0
```
## 配置 SDK
### 配置 SDK 以使用 API (SaaS)
需要[有效的订阅和 API 密钥](https://attachmentav.com/help/virus-malware-scan-api/setup-guide/#api-key)。将 `` 替换为您的 API 密钥,并将 `` 替换为 API 端点。API 端点(区域)必须与为订阅选择的区域相匹配。默认值为 `Europe`。
**API 端点 (SaaS)**
* `https://eu.developer.attachmentav.com/v1/` (欧洲)
* `https://us.developer.attachmentav.com/v1/` (美国)
* `https://canada.developer.attachmentav.com/v1/` (加拿大)
* `https://india.developer.attachmentav.com/v1/` (印度)
* `https://australia.developer.attachmentav.com/v1/` (澳大利亚)
```
import com.attachmentav.api.AttachmentAvApi;
import com.attachmentav.client.ApiClient;
import com.attachmentav.client.ApiException;
import com.attachmentav.client.Configuration;
import com.attachmentav.model.ScanResult;
// ...
ApiClient client = Configuration.getDefaultApiClient();
client.setApiKey("");
client.setBasePath("");
AttachmentAvApi api = new AttachmentAvApi();
```
### 配置 SDK 以使用 API (在 AWS 上自托管)
在遵循设置指南时,您为 CloudFormation stack 指定了 `ApiKeys` 参数。将 `` 替换为其中一个密钥,并将 `` 替换为 API 端点。
例如,将 `attachmentav.yourcompany.com` 替换为您 [attachmentAV API 安装](https://attachmentav.com/help/virus-malware-scan-api-aws/developer/definition.html#domain-name) 的域名:
`https://attachmentav.yourcompany.com/api/v1`。
```
import com.attachmentav.api.AttachmentAvApi;
import com.attachmentav.client.ApiClient;
import com.attachmentav.client.ApiException;
import com.attachmentav.client.Configuration;
import com.attachmentav.model.ScanResult;
// ...
ApiClient client = Configuration.getDefaultApiClient();
client.setBearerToken("");
client.setBasePath("");
AttachmentAvApi api = new AttachmentAvApi();
```
## 示例
### 同步扫描:文件
将文件发送到 attachmentAV 病毒扫描 API 并处理扫描结果。
最大文件大小为 10 MB。请求超时时间为 60 秒。
```
ScanResult result = api.scanSyncBinaryPost(new File("/path/to/file"));
System.out.println("Scan Result: " + result.getStatus());
```
查看完整示例[请点击这里](https://github.com/widdix/attachmentav-sdk-java/blob/main/examples/src/main/java/com/attachmentav/api/examples/SyncBinary.java)
### 同步扫描:下载
将 URL 发送到 attachmentAV 病毒扫描 API。attachmentAV 将下载文件并立即返回扫描结果。
最大文件大小为 10 MB。请求超时时间为 60 秒。
查看完整示例[请点击这里](https://github.com/widdix/attachmentav-sdk-java/blob/main/examples/src/main/java/com/attachmentav/api/examples/SyncDownload.java)
### 同步扫描:S3
将 S3 bucket 名称和 object key 发送到 attachmentAV 病毒扫描 API。attachmentAV 将下载文件并立即返回扫描结果。
最大文件大小为 10 MB。请求超时时间为 60 秒。
```
SyncS3ScanRequest request = new SyncS3ScanRequest();
request.setBucket("");
request.setKey("");
//request.setVersion(""); // for versioned buckets only
ScanResult result = api.scanSyncS3Post(request);
System.out.println("Scan Result: " + result.getStatus());
```
查看完整示例[请点击这里](https://github.com/widdix/attachmentav-sdk-java/blob/main/examples/src/main/java/com/attachmentav/api/examples/SyncS3.java)
### 异步扫描:下载 (callback)
将 URL 发送到 attachmentAV 病毒扫描 API。attachmentAV 会将扫描结果发送到 callback URL。详情请参阅 [callback URL](https://attachmentav.com/help/virus-malware-scan-api/setup-guide/#callback-url)。
最大文件大小为 5 GB。请求超时时间为 29 秒,异步扫描任务不受此限制影响。
查看完整示例[请点击这里](https://github.com/widdix/attachmentav-sdk-java/blob/main/examples/src/main/java/com/attachmentav/api/examples/AsyncDownload.java)
### 异步扫描:下载 (polling)
将 URL 发送到 attachmentAV 病毒扫描 API。attachmentAV 将下载文件并将扫描结果存储 24 小时。
最大文件大小为 5 GB。请求超时时间为 29 秒,异步扫描任务不受此限制影响。
```
String traceId = UUID.randomUUID().toString();
AsyncDownloadScanRequest request = new AsyncDownloadScanRequest();
request.setTraceId(traceId);
request.setDownloadUrl("https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf");
api.scanAsyncDownloadPost(request);
System.out.println("Async download submitted.");
// Wait some time...
ScanResult scanResult = api.scanAsyncResultGet(traceId);
System.out.println("Async download scan result: " + scanResult);
```
查看完整示例[请点击这里](https://github.com/widdix/attachmentav-sdk-java/blob/main/examples/src/main/java/com/attachmentav/api/examples/AsyncDownloadPolling.java)
### 异步扫描:S3 (callback)
将 S3 bucket 名称和 object key 发送到 attachmentAV 病毒扫描 API。attachmentAV 会将扫描结果发送到 callback URL。详情请参阅 [callback URL](https://attachmentav.com/help/virus-malware-scan-api/setup-guide/#callback-url)。
最大文件大小为 5 GB。请求超时时间为 29 秒,异步扫描任务不受此限制影响。
```
AsyncS3ScanRequest request = new AsyncS3ScanRequest();
request.setBucket("example-bucket");
request.setKey("demo.txt");
request.setCallbackUrl("https://example.com/callback");
api.scanAsyncS3Post(request);
```
查看完整示例[请点击这里](https://github.com/widdix/attachmentav-sdk-java/blob/main/examples/src/main/java/com/attachmentav/api/examples/AsyncS3.java)
### 异步扫描:S3 (polling)
将 S3 bucket 名称和 object key 发送到 attachmentAV 病毒扫描 API。attachmentAV 将下载文件并将扫描结果存储 24 小时。详情。
最大文件大小为 5 GB。请求超时时间为 29 秒,异步扫描任务不受此限制影响。
```
String traceId = UUID.randomUUID().toString();
AsyncS3ScanRequest request = new AsyncS3ScanRequest();
request.setTraceId(traceId);
request.setBucket("");
request.setKey("");
//request.setVersion(""); // for versioned buckets only
api.scanAsyncS3Post(request);
System.out.println("Async S3 submitted.");
// Wait some time...
ScanResult scanResult = api.scanAsyncResultGet(traceId);
System.out.println("Async download scan result: " + scanResult);
```
查看完整示例[请点击这里](https://github.com/widdix/attachmentav-sdk-java/blob/main/examples/src/main/java/com/attachmentav/api/examples/AsyncS3.java)
### 使用方法
详情请参阅[使用方法](sdk/models/Usage.ts)。
```
com.attachmentav.model.Usage result = api.usageGet();
System.out.println("Usage: " + result.toString());
```
查看完整示例[请点击这里](https://github.com/widdix/attachmentav-sdk-java/blob/main/examples/src/main/java/com/attachmentav/api/examples/Usage.java)
### 我是谁
获取关于您自己的信息。
详情请参阅[我是谁](sdk/models/Whoami.ts)。
```
com.attachmentav.model.Whoami result = api.whoamiGet();
System.out.println("Who Am I: " + result.toString());
```
查看完整示例[请点击这里](https://github.com/widdix/attachmentav-sdk-java/blob/main/examples/src/main/java/com/attachmentav/api/examples/Whoami.java)
## 需要帮助?
您在开始使用 attachmentAV 时需要任何帮助吗?请联系 [hello@attachmentav.com](mailto:hello@attachmentav.com)。
标签:JS文件枚举, SaaS API, 域名枚举, 恶意软件扫描, 漏洞利用检测, 网页爬虫, 防病毒