Browse Source

Fix curl download on Windows (#669)

* Update ci-testing.yml

* Fix windows download

* Fix cookie and curl download issue from gdrive

* Revert "Update ci-testing.yml"

This reverts commit 7389d2238d.

* Update google_utils.py

PEP8

* Update google_utils.py

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
5.0
NanoCode012 GitHub 4 years ago
parent
commit
fe5b3f8712
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 4 deletions
  1. +14
    -4
      utils/google_utils.py

+ 14
- 4
utils/google_utils.py View File

# from google.cloud import storage # from google.cloud import storage


import os import os
import platform
import time import time
from pathlib import Path from pathlib import Path




if not (r == 0 and os.path.exists(weights) and os.path.getsize(weights) > 1E6): # weights exist and > 1MB if not (r == 0 and os.path.exists(weights) and os.path.getsize(weights) > 1E6): # weights exist and > 1MB
os.remove(weights) if os.path.exists(weights) else None # remove partial downloads os.remove(weights) if os.path.exists(weights) else None # remove partial downloads
s = "curl -L -o %s 'storage.googleapis.com/ultralytics/yolov5/ckpt/%s'" % (weights, file)
s = 'curl -L -o %s "storage.googleapis.com/ultralytics/yolov5/ckpt/%s"' % (weights, file)
r = os.system(s) # execute, capture return values r = os.system(s) # execute, capture return values


# Error check # Error check
os.remove('cookie') if os.path.exists('cookie') else None os.remove('cookie') if os.path.exists('cookie') else None


# Attempt file download # Attempt file download
os.system("curl -c ./cookie -s -L \"drive.google.com/uc?export=download&id=%s\" > /dev/null" % id)
out = "NUL" if platform.system() == "Windows" else "/dev/null"
os.system('curl -c ./cookie -s -L "drive.google.com/uc?export=download&id=%s" > %s ' % (id, out))
if os.path.exists('cookie'): # large file if os.path.exists('cookie'): # large file
s = "curl -Lb ./cookie \"drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=%s\" -o %s" % (
id, name)
s = 'curl -Lb ./cookie "drive.google.com/uc?export=download&confirm=%s&id=%s" -o %s' % (
get_token(), id, name)
else: # small file else: # small file
s = 'curl -s -L -o %s "drive.google.com/uc?export=download&id=%s"' % (name, id) s = 'curl -s -L -o %s "drive.google.com/uc?export=download&id=%s"' % (name, id)
r = os.system(s) # execute, capture return values r = os.system(s) # execute, capture return values
return r return r




def get_token(cookie="./cookie"):
with open(cookie) as f:
for line in f:
if "download" in line:
return line.split()[-1]
return ""


# def upload_blob(bucket_name, source_file_name, destination_blob_name): # def upload_blob(bucket_name, source_file_name, destination_blob_name):
# # Uploads a file to a bucket # # Uploads a file to a bucket
# # https://cloud.google.com/storage/docs/uploading-objects#storage-upload-object-python # # https://cloud.google.com/storage/docs/uploading-objects#storage-upload-object-python

Loading…
Cancel
Save