Поврежденный xml загружается при загрузке. xml файла из артефакта с использованием python - PullRequest
0 голосов
/ 22 января 2020

Я использую приведенный ниже скрипт для загрузки всех файлов xml, присутствующих в каталоге артефакта (вложенное имя содержит различные файлы. xml)

from artifactory import ArtifactoryPath
import shutil,os,requests

url="https://artifactory.xxx.com/artifactory/foldername/subfoldername/"
logdirectory='C:\\subfoldername'
if not os.path.exists(logdirectory):
            os.mkdir(logdirectory)
os.chdir(logdirectory)
xmlfiles = ArtifactoryPath(url,auth=(username, password))
for element in xmlfiles:
    print (element )
    xmlname=str(element).split("/")[-1]
    print(xmlname)
    with requests.get(element , auth=(username, password), stream=True) as r:
         with open(xmlname, 'wb') as f:
         shutil.copyfileobj(r.raw, f)

Загрузка файлов xml с правильными имя, но когда я пытаюсь открыть файлы, он показывает поврежденные данные. enter image description here

PS: я также пробовал метод, представленный ниже (https://pypi.org/project/artifactory/), но он также приводит к тому же повреждению xml с использованием моего кода для путь и аутентификация. Приведенный ниже код для быстрого ознакомления

from artifactory import ArtifactoryPath
path = ArtifactoryPath(
    "http://repo.jfrog.org/artifactory/distributions/org/apache/tomcat/apache-tomcat-7.0.11.tar.gz")

with path.open() as fd:
    with open("tomcat.tar.gz", "wb") as out:
        out.write(fd.read())

, пожалуйста, предложите, как я могу загрузить xml файлы без их повреждения

1 Ответ

0 голосов
/ 22 января 2020

Примерно так работает:

for element in xmlfiles:
    print(element)
    xmlname= str(element).split("/")[-1]
    print(xmlname)
    req = requests.get(element , auth=(username, password))
         with open(xmlname, 'wb') as f:
            f.write(req.content)

WIP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...