def test_upload_large(self): """ should support uploading large files """ temp_file = tempfile.NamedTemporaryFile() temp_file_name = temp_file.name temp_file.write(b"BMJ\xB9Y\x00\x00\x00\x00\x00\x8A\x00\x00\x00|\x00\x00\x00x\x05\x00\x00x\x05\x00\x00\x01\ \x00\x18\x00\x00\x00\x00\x00\xC0\xB8Y\x00a\x0F\x00\x00a\x0F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\x00\ \x00\xFF\x00\x00\xFF\x00\x00\x00\x00\x00\x00\xFFBGRs\x00\x00\x00\x00\x00\x00\x00\x00T\xB8\x1E\xFC\x00\x00\x00\x00\ \x00\x00\x00\x00fff\xFC\x00\x00\x00\x00\x00\x00\x00\x00\xC4\xF5(\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00") for i in range(0, 588000): temp_file.write(b"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF") temp_file.flush() self.assertEqual(5880138, os.path.getsize(temp_file_name)) resource = uploader.upload_large(temp_file_name, chunk_size=5243000, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["resource_type"], "raw") resource2 = uploader.upload_large(temp_file_name, chunk_size=5243000, tags=["upload_large_tag", UNIQUE_TAG], resource_type="image") self.assertEqual(resource2["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource2["resource_type"], "image") self.assertEqual(resource2["width"], 1400) self.assertEqual(resource2["height"], 1400) resource3 = uploader.upload_large(temp_file_name, chunk_size=5880138, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["resource_type"], "raw") temp_file.close()
def test_upload_large(self): """ should support uploading large files """ filename = UNIQUE_ID + "_cld_upload_large" with tempfile.NamedTemporaryFile(prefix=filename, suffix='.bmp') as temp_file: populate_large_file(temp_file, LARGE_FILE_SIZE) temp_file_name = temp_file.name temp_file_filename = os.path.splitext(os.path.basename(temp_file_name))[0] self.assertEqual(LARGE_FILE_SIZE, os.path.getsize(temp_file_name)) resource = uploader.upload_large(temp_file_name, chunk_size=LARGE_CHUNK_SIZE, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["resource_type"], "raw") self.assertEqual(resource["original_filename"], temp_file_filename) resource2 = uploader.upload_large(temp_file_name, chunk_size=LARGE_CHUNK_SIZE, tags=["upload_large_tag", UNIQUE_TAG], resource_type="image", use_filename=True, unique_filename=False, filename=filename) self.assertEqual(resource2["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource2["resource_type"], "image") self.assertEqual(resource2["original_filename"], filename) self.assertEqual(resource2["original_filename"], resource2["public_id"]) self.assertEqual(resource2["width"], LARGE_FILE_WIDTH) self.assertEqual(resource2["height"], LARGE_FILE_HEIGHT) resource3 = uploader.upload_large(temp_file_name, chunk_size=LARGE_FILE_SIZE, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["resource_type"], "raw")
def test_upload_large(self): """ should support uploading large files """ with tempfile.NamedTemporaryFile() as temp_file: populate_large_file(temp_file, LARGE_FILE_SIZE) temp_file_name = temp_file.name self.assertEqual(LARGE_FILE_SIZE, os.path.getsize(temp_file_name)) resource = uploader.upload_large(temp_file_name, chunk_size=LARGE_CHUNK_SIZE, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["resource_type"], "raw") resource2 = uploader.upload_large(temp_file_name, chunk_size=LARGE_CHUNK_SIZE, tags=["upload_large_tag", UNIQUE_TAG], resource_type="image") self.assertEqual(resource2["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource2["resource_type"], "image") self.assertEqual(resource2["width"], LARGE_FILE_WIDTH) self.assertEqual(resource2["height"], LARGE_FILE_HEIGHT) resource3 = uploader.upload_large(temp_file_name, chunk_size=LARGE_FILE_SIZE, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["resource_type"], "raw")
def test_upload_large(self): """ should support uploading large files """ temp_file = tempfile.NamedTemporaryFile() temp_file_name = temp_file.name temp_file.write( b"BMJ\xB9Y\x00\x00\x00\x00\x00\x8A\x00\x00\x00|\x00\x00\x00x\x05\x00\x00x\x05\x00\x00\x01\ \x00\x18\x00\x00\x00\x00\x00\xC0\xB8Y\x00a\x0F\x00\x00a\x0F\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\x00\ \x00\xFF\x00\x00\xFF\x00\x00\x00\x00\x00\x00\xFFBGRs\x00\x00\x00\x00\x00\x00\x00\x00T\xB8\x1E\xFC\x00\x00\x00\x00\ \x00\x00\x00\x00fff\xFC\x00\x00\x00\x00\x00\x00\x00\x00\xC4\xF5(\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00") for i in range(0, 588000): temp_file.write(b"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF") temp_file.flush() self.assertEqual(5880138, os.path.getsize(temp_file_name)) resource = uploader.upload_large(temp_file_name, chunk_size=5243000, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["resource_type"], "raw") resource2 = uploader.upload_large( temp_file_name, chunk_size=5243000, tags=["upload_large_tag", UNIQUE_TAG], resource_type="image") self.assertEqual(resource2["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource2["resource_type"], "image") self.assertEqual(resource2["width"], 1400) self.assertEqual(resource2["height"], 1400) resource3 = uploader.upload_large( temp_file_name, chunk_size=5880138, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["resource_type"], "raw") # should allow fallback of upload large with remote url to regular upload resource4 = uploader.upload_large(REMOTE_TEST_IMAGE, tags=[UNIQUE_TAG]) self.assertEqual(resource4["width"], TEST_IMAGE_WIDTH) self.assertEqual(resource4["height"], TEST_IMAGE_HEIGHT) expected_signature = utils.api_sign_request( dict(public_id=resource4["public_id"], version=resource4["version"]), cloudinary.config().api_secret) self.assertEqual(resource4["signature"], expected_signature) temp_file.close()
def test_upload_large(self): """ should support uploading large files """ filename = UNIQUE_ID + "_cld_upload_large" with tempfile.NamedTemporaryFile(prefix=filename, suffix='.bmp') as temp_file: populate_large_file(temp_file, LARGE_FILE_SIZE) temp_file_name = temp_file.name temp_file_filename = os.path.splitext( os.path.basename(temp_file_name))[0] self.assertEqual(LARGE_FILE_SIZE, os.path.getsize(temp_file_name)) resource = uploader.upload_large( temp_file_name, chunk_size=LARGE_CHUNK_SIZE, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["resource_type"], "raw") self.assertEqual(resource["original_filename"], temp_file_filename) resource2 = uploader.upload_large( temp_file_name, chunk_size=LARGE_CHUNK_SIZE, tags=["upload_large_tag", UNIQUE_TAG], resource_type="image", use_filename=True, unique_filename=False, filename=filename) self.assertEqual(resource2["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource2["resource_type"], "image") self.assertEqual(resource2["original_filename"], filename) self.assertEqual(resource2["original_filename"], resource2["public_id"]) self.assertEqual(resource2["width"], LARGE_FILE_WIDTH) self.assertEqual(resource2["height"], LARGE_FILE_HEIGHT) resource3 = uploader.upload_large( temp_file_name, chunk_size=LARGE_FILE_SIZE, tags=["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource3["resource_type"], "raw")
def form_valid(self, form): if self.request.user.is_authenticated: kwargs = self.get_form_kwargs() tags_str = kwargs['data'].get('tags') tags = [x.strip('#') for x in tags_str.split()] existed_tags = { tag.name: tag.id for tag in Tag.objects.filter(name__in=tags) } tags_to_create = [tag for tag in tags if tag not in existed_tags] tags_ids = list(existed_tags.values()) for tag in tags_to_create: created_tag = Tag.objects.create(name=tag) tags_ids.append(created_tag.id) response = uploader.upload_large(kwargs.get('files')['video']) video = Video(title=kwargs['data'].get('title'), url=response['url']) video.save() video_id = video.id for tags_id in tags_ids: VideoTag.objects.create(tag_id=tags_id, video_id=video_id) return HttpResponseRedirect(reverse('main_page')) else: return HttpResponseRedirect(reverse('auth'))
def test_upload_large_file_io(self): """Should support uploading large streams""" with io.BytesIO() as temp_file: populate_large_file(temp_file, LARGE_FILE_SIZE) resource = uploader.upload_large(temp_file, chunk_size=LARGE_CHUNK_SIZE, tags=["upload_large_tag", UNIQUE_TAG], resource_type="image") self.assertEqual(resource["tags"], ["upload_large_tag", UNIQUE_TAG]) self.assertEqual(resource["resource_type"], "image") self.assertEqual(resource["width"], LARGE_FILE_WIDTH) self.assertEqual(resource["height"], LARGE_FILE_HEIGHT)
def test_upload_large_url(self): """Should allow fallback of upload large with remote url to regular upload""" resource4 = uploader.upload_large(REMOTE_TEST_IMAGE, tags=[UNIQUE_TAG]) self.assertEqual(resource4["width"], TEST_IMAGE_WIDTH) self.assertEqual(resource4["height"], TEST_IMAGE_HEIGHT) expected_signature = utils.api_sign_request( dict(public_id=resource4["public_id"], version=resource4["version"]), cloudinary.config().api_secret) self.assertEqual(resource4["signature"], expected_signature)
def test_upload_large(self): """ should uploading large raw files """ uploader.upload_large("tests/docx.docx")
def test_upload_large(self): """ should uploading large raw files """ resource = uploader.upload_large("tests/docx.docx", tags="upload_large_tag") self.assertEqual(["upload_large_tag"], resource["tags"])
def upload_image(): try: text = request.form["text"] if text: t=[text,"text"] data = text j_data=json.dumps({"data":data,"type":"text"}) headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'} r = requests.post(url, data=j_data, headers=headers) #print(r.text.split()) if r.text.split()[0]=="true": if len(contents)==0 or contents[0]!=t: contents.insert(0,t) else: flash("Invalid Text") return render_template("index.html",content=contents) else: file = request.files['files'] filename = secure_filename(file.filename) path = os.path.join(upload_folder, filename) file.save(path) kind = filetype.guess(path) type,extension = str(kind.mime).split("/") #print(path) p=[path,type] #print(p) if type=="image": img=up.upload(path,cloud_name='drlf6gntz',api_key='894749617857176',api_secret='Qp-ckIp4k_xIresVZF7Gms0WrPY') img_url=img["url"] j_data = json.dumps({"data":img_url,"type":"image"}) headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'} r = requests.post(url, data=j_data, headers=headers) #print(r.text.split()) if r.text.split()[0]=="true": if len(contents)==0 or contents[0]!=p: contents.insert(0,p) else: flash("Invalid Image") return render_template("index.html",content=contents) elif type=="audio": audio=up.upload(path,cloud_name='drlf6gntz',api_key='894749617857176',api_secret='Qp-ckIp4k_xIresVZF7Gms0WrPY',resource_type="raw") audio_url=audio["url"] #print(audio_url) j_data = json.dumps({"data":audio_url,"type":"audio"}) headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'} r = requests.post(url, data=j_data, headers=headers) #print(r.text.split()) if r.text.split()[0]=="true": if len(contents)==0 or contents[0]!=p: contents.insert(0,p) else: flash("Invalid Audio") return render_template("index.html",content=contents) elif type=="video": vid=up.upload_large(path,cloud_name='drlf6gntz',api_key='894749617857176',api_secret='Qp-ckIp4k_xIresVZF7Gms0WrPY') vid_url=vid["url"] #print(vid_url) j_data = json.dumps({"data":vid_url,"type":"video"}) headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'} r = requests.post(url, data=j_data, headers=headers) if r.text.split()[0]=="true": if len(contents)==0 or contents[0]!=p: contents.insert(0,p) else: flash("Invalid Video") return render_template("index.html",content=contents) return render_template("index.html",content=contents) except Exception as e: print(e) return render_template('index.html',content=contents)