针对给定的oss地址下载到本地

针对给定的oss地址下载到本地

public static void getPicbyClient(String ossUrl , String localFilePath) throws Exception {
  // 创建一个默认的CloseableHttpClient实例。HttpClient是Apache HttpClient库的核心类,用于发送HTTP请求
    CloseableHttpClient httpclient = HttpClients.createDefault();
    ossUrl = ossUrl.trim().replaceAll("^\"|\"$", "");
    try {
      //创建一个新的HttpGet对象,用于执行HTTP GET请求。
        HttpGet httpGet = new HttpGet(ossUrl);
        CloseableHttpResponse response = httpclient.execute(httpGet);
        try {
          //执行HTTP GET请求并获取响应
            HttpEntity entity = response.getEntity();
            if (entity != null) {
              //如果HttpEntity不为空,获取其内容作为InputStream
                try (InputStream inputStream = entity.getContent()) {
                  // 创建一个新的FileOutputStream,用于将数据写入本地文件。
                    FileOutputStream outputStream = new FileOutputStream(new File(localFilePath));
                  //创建一个1024字节的缓冲区,并在循环中读取输入流并写入输出流,直到没有更多的数据可读。
                    int read;
                    byte[] bytes = new byte[1024];
                    while ((read = inputStream.read(bytes)) != -1) {
                        outputStream.write(bytes, 0, read);
                    }
                    outputStream.close();
                }
            }
          // 消耗并关闭HttpEntity。
            EntityUtils.consume(entity);
        } finally {
            response.close();
        }
    } finally {
        httpclient.close();
    }
}

这段代码适用于从任何HTTP或HTTPS URL下载文件。它不仅限于OSS URL,只要URL指向的是一个可以下载的文件,这段代码就可以工作。

这段代码使用Apache HttpClient库,这是一个强大的库,可以用于发送HTTP请求和处理HTTP响应。它提供了很多高级特性,比如连接管理、cookie管理、SSL/TLS定制等。

这段代码使用了HTTP GET请求来下载文件,这是最常见的下载文件的方法。然后,它将文件内容保存到本地文件系统。

这段代码的一个优点是它可以处理大文件,因为它使用了缓冲区和循环来读取和写入文件,而不是一次性读取或写入整个文件。这意味着它可以下载任何大小的文件,只要有足够的磁盘空间。

然而,这段代码也有一些限制。例如,它不支持断点续传,如果下载过程中出现问题,它将无法恢复。此外,它也不支持多线程下载,这意味着下载速度可能不如一些专门的下载工具。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!以下是一个使用Katalon Studio编写的脚本,用于从OSS下载文件到本地的示例: ```groovy import com.kms.katalon.core.webui.driver.DriverFactory import com.kms.katalon.core.testcase.TestCase as KatalonTestCase import com.kms.katalon.core.testdata.TestData as KatalonTestData import com.kms.katalon.core.checkpoint.Checkpoint as KatalonCheckpoint import com.kms.katalon.core.logging.KeywordLogger as KatalonLogger import com.kms.katalon.core.model.FailureHandling as KatalonFailureHandling import org.openqa.selenium.WebDriver as WebDriver import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI String accessKey = "your_access_key" String secretKey = "your_secret_key" String endpoint = "your_endpoint" String bucketName = "your_bucket_name" String folderPath = "your_folder_path" String localPath = "your_local_path" WebUI.openBrowser('') WebDriver driver = DriverFactory.getWebDriver() // 设置OSS访问凭证 System.setProperty("aws.accessKeyId", accessKey) System.setProperty("aws.secretKey", secretKey) // 构造OSS客户端实例 def client = new com.amazonaws.services.s3.AmazonS3Client() // 设置OSS服务的URL client.setEndpoint(endpoint) // 指定Bucket名称和文件夹路径 def bucket = client.listObjects(bucketName, folderPath) // 循环下载文件夹中的每个文件 bucket.getObjectSummaries().each { objectSummary -> def key = objectSummary.getKey() def fileName = key.substring(key.lastIndexOf('/') + 1) def destinationPath = localPath + "/" + fileName // 下载文件到本地 client.getObject(bucketName, key, new File(destinationPath)) } WebUI.closeBrowser() ``` 请注意,您需要将示例代码中的以下参数替换为您自己的凭证和路径: - `accessKey`:您的OSS访问密钥 - `secretKey`:您的OSS密钥 - `endpoint`:您的OSS服务URL - `bucketName`:要下载文件所在的Bucket名称 - `folderPath`:要下载文件夹路径(以斜杠开头) - `localPath`:本地保存文件的路径 此脚本使用Katalon Studio中的WebUI关键字执行浏览器操作,并使用AWS SDK for Java下载文件。在执行脚本之前,请确保您已经在Katalon Studio中正确配置了所需的AWS SDK依赖项。 希望能对您有所帮助!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值