从URL检查文件的校验和

时间:2019-03-12 12:06:07

标签: ansible

我想从URL检查文件的sha1哈希。

 private void writeheaders(XSSFWorkbook workbook, XSSFSheet sheet, List<String> headers, List<Integer> cellsToMerge, int startRow, int endRow, int startCol) {
 XSSFRow row = sheet.createRow(startRow);
 Int endCol=0;

 for(int i=0;i<headers.size();i++){
       If(i==0){
            startCol=0;
            endCol=cellsToMerge.get(i);
       }else{
             startCol=endCol +1;
             endCol = endCol + cellsToMerge.get(i);
       }

      CellRangeAddress region = new CellRangeAddress(startRow, endRow, startCol, endCol) ;
      sheet.addMergedRegion(region);
      Cell cell = row.createCell(startCol);
      cell.setCellValue(headers.get(i));
 }
 }

我在http://domaine.com/file中有一个文件 以及位于http://domaine.com/file.sha1

的校验和

当我执行剧本时,出现以下错误消息:

- name: Download CONF WEB/WS/CORE files
  get_url:
    url: "{{ file.url }}"
    checksum: "sha1:{{ file.url }}.sha1"
    dest: "/home/file"
    force_basic_auth: yes
    url_username: "xxxx"
    url_password: "xxxxx"
    mode: 0640
    timeout: 300
    force: yes

可用的文档: 如果将校验和传递给此参数,则为目标的摘要  下载后将计算文件,以确保其完整性和  确认传输成功完成。 格式: :,例如checksum =“ sha256:D98291AC [...] B6DC7B97”, checksum =“ sha256:http://example.com/path/sha256sum.txt

有人遇到了相同的错误 感谢您的提前帮助^^,

1 个答案:

答案 0 :(得分:1)

由于此评论,看来他们不会提供此类功能来根据URL检查校验和 https://github.com/ansible/ansible/issues/48790#issuecomment-440432038

似乎您需要在两个单独的任务中执行此操作,一个任务是下载校验和文件,第二个任务是从下载的文件中提取校验和值

我做到了

---
- hosts: localhost
  tasks:
  - name: Download file
    get_url:
      url: "http://localhost/file"
      checksum: "sha1:3b71f43ff30...e84eb5a3"
      dest: "/home/user/file"

成功了

  

相关问题
  https://github.com/ansible/ansible/issues/27617
  https://github.com/ansible/ansible/issues/48790
  https://github.com/ansible/ansible/issues/48847