我想从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”
有人遇到了相同的错误 感谢您的提前帮助^^,
答案 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