URL blob là gì và tại sao nó được sử dụng?


104

Tôi đang gặp phải rất nhiều vấn đề với URL blob.

Tôi đã tìm kiếm src của thẻ video trên YouTube và tôi thấy rằng video src giống như:

src="blob:https://crap.crap" 

tôi mở URL blob đó là trong src của video đó đã đưa ra một lỗi và tôi có thể' t mở nhưng đã làm việc với thẻ src. Sao có thể như thế được?

Yêu cầu:

  • URL blob là gì?
  • Tại sao nó được sử dụng?
  • Tôi có thể tạo URL blob của riêng mình trên máy chủ không?
  • Nếu bạn có bất kỳ thông tin chi tiết thêm

Cảm ơn trước

+1

Bây giờ tôi có thể ẩn url của video nhưng nó có thể được ghi lại ..... bất cứ điều gì bạn làm nếu bạn đang hiển thị video trên trang web sau đó nó có thể được tải xuống ..... Tôi đang tạo một tệp php yêu cầu thông số id và nó kiểm tra tên thật và tên thư mục từ máy chủ và sau đó nếu có cookie được đặt cho người dùng cho địa chỉ IP cụ thể trong cơ sở dữ liệu thì tôi cho phép người dùng xem video ngay bây giờ Nếu anh ấy đang sử dụng IDM thì IDM thực hiện ' Nếu bạn không thể tải video xuống 03 aug. 152015-08-03 12:29:17

+1

Nhưng đây là video khác nếu video được chrome tải xuống từ tập lệnh php thì có thể tải xuống nhưng U có thể kiểm tra tác nhân người dùng để tôi tạo lớp học có thể tạo và cũng ẩn người dùng và nó cho lỗi 403 nếu phát hiện rằng có một chương trình khác đang tải xuống video 03 aug. 152015-08-03 12:30:43

+1

Cũng với javascript tôi tạo một đốm màu và sau đó đảm bảo rằng blob không phải là toàn cầu và sau đó tôi tạo canvas và vẽ thứ e pic từ video một lần nữa và một lần nữa vì vậy nó sẽ rất nhiều khó khăn cho các chương trình để có được src của video và tôi đang sử dụng một tập tin php để tạo ra các tập tin âm thanh Bằng cách tôi có khác mà không phải là quá đơn giản và Nó đòi hỏi một lập trình tốt ..... Bạn có thể tạo trang bằng tập lệnh php và tạo khung video php như 100 khung hình trên trang và sau đó sử dụng javascript để bắt và cũng xử lý trên canvas + cũng tải trang thứ 2 để nhận 100 khung hình khác và trước tiên tạo video có thể chơi được. 03 aug. 152015-08-03 12:33:33

  0

Cũng http://stackoverflow.com/q/14952052/632951 06 feb. 172017-02-06 21:59:32

104

Blob URL (r ef W3C, tên chính thức) hoặc URL đối tượng (ref. MDN và tên phương thức) được sử dụng với một đối tượng Blob hoặc File.

src = "blob: https://crap.crap" Tôi mở url blob đó là trong src của video nó đã đưa ra một lỗi và tôi không thể mở nhưng đã làm việc với thẻ src nó như thế nào là tốt?

URL Blob chỉ có thể được tạo trong nội bộ bởi trình duyệt. URL.createObjectURL() sẽ tạo một tham chiếu đặc biệt cho đối tượng Blob hoặc Tệp mà sau này có thể được phát hành bằng cách sử dụng URL.revokeObjectURL(). Các URL này chỉ có thể được sử dụng cục bộ trong một cá thể của trình duyệt và trong cùng một phiên (ví dụ: tuổi thọ của trang/tài liệu).

Url blob là gì?
Tại sao nó được sử dụng?

URL của Blob/URL đối tượng là giao thức giả để cho phép Blob và đối tượng Tệp được sử dụng làm nguồn URL cho những thứ như hình ảnh, liên kết tải xuống cho dữ liệu nhị phân v.v.

Ví dụ: bạn không thể đưa dữ liệu byte dữ liệu đối tượng hình ảnh vì nó sẽ không biết phải làm gì với nó. Nó đòi hỏi các hình ảnh ví dụ (là dữ liệu nhị phân) được tải thông qua các URL. Điều này áp dụng cho bất kỳ thứ gì yêu cầu URL dưới dạng nguồn. Thay vì tải lên các dữ liệu nhị phân, sau đó phục vụ nó trở lại thông qua một URL nó là tốt hơn để sử dụng một bước địa phương thêm để có thể truy cập dữ liệu trực tiếp mà không cần đi qua một máy chủ.

Đây cũng là lựa chọn thay thế tốt hơn cho URI dữ liệu được mã hóa là Base-64. Vấn đề với Data-URI là mỗi char mất hai byte trong JavaScript. Trên hết, 33% được thêm do mã hóa Base-64. Blobs là các mảng byte nhị phân thuần túy không có bất kỳ chi phí đáng kể nào như Data-URI, điều này làm cho chúng nhanh hơn và nhỏ hơn để xử lý.

Tôi có thể tạo url blob của riêng mình trên máy chủ không?

Không, URL URL/URL đối tượng chỉ có thể được thực hiện trong trình duyệt. Bạn có thể tạo Blobs và lấy đối tượng File thông qua API File Reader, mặc dù BLOB chỉ có nghĩa là OBinary Large OBject và được lưu trữ dưới dạng mảng byte. Một khách hàng có thể yêu cầu dữ liệu được gửi như ArrayBuffer hoặc như một Blob. Máy chủ sẽ gửi dữ liệu dưới dạng dữ liệu nhị phân thuần túy. Cơ sở dữ liệu thường sử dụng Blob để mô tả các đối tượng nhị phân, và về bản chất chúng ta đang nói về cơ bản về mảng byte.

nếu bạn có thì chi tiết bổ sung

Bạn cần để đóng gói dữ liệu nhị phân như một đối tượng BLOB, sau đó sử dụng URL.createObjectURL() để tạo ra một URL địa phương cho nó:

var blob = new Blob([arrayBufferWithPNG], {type: "image/png"}), 
    url = URL.createObjectURL(blob), 
    img = new Image(); 

img.onload = function() { 
    URL.revokeObjectURL(this.src);  // clean-up memory 
    document.body.appendChild(this); // add image to DOM 
} 

img.src = url;       // can now "stream" the bytes 

Lưu ý rằng URL có thể được thêm tiền tố trong trình duyệt webkit, vì vậy hãy sử dụng:

var url = (URL || webkitURL).createObjectURL(...); 
  0

Tôi có một tập lệnh php luồng một video theo id là $ _GET ["id"] để tôi có thể cung cấp url như blob: // vì vậy nó có thể được sử dụng bởi video của tôi src như youtube đang sử dụng.Where ever i nhìn là chỉ javascript .... Hãy để tôi cung cấp cho bạn một số thông tin về url tôi có url như http://website.com/video.php?id=ljduwkbcj27dj vì vậy làm thế nào để sử dụng javascript hoặc php để cung cấp cho một địa chỉ blob 17 jun. 152015-06-17 10:54:04

  0

@Waqas nếu URL chuyển đến tệp video trực tuyến (hoặc trang đẩy tệp video), bạn có thể đặt trực tiếp URL đó làm nguồn cho phần tử video (ví dụ: 'video.src =" http://website.com/video.php ? id = ljduwkbcj27dj ";'). Điều này liên quan nhiều hơn đến tiêu đề phản hồi từ máy chủ và loại dữ liệu mà trang gửi lại. Nhưng đây sẽ là một chút trong phạm vi của câu hỏi ban đầu để trang trải. URL đối tượng chỉ được sử dụng cục bộ làm cầu nối giữa dữ liệu nhị phân và các phần tử yêu cầu URL dưới dạng nguồn. 17 jun. 152015-06-17 11:06:36

  0

vậy tại sao youtube sử dụng blob 17 jun. 152015-06-17 11:07:33

  0

@ K3N Có thể chuyển đổi url đối tượng đó thành dataUri không? 24 may. 162016-05-24 12:00:43

+2

Cảm ơn lời giải thích này. làm tốt. 27 may. 162016-05-27 20:08:59

+1

Trong 6 giờ qua, tôi đã cố gắng làm cho PHP biến một URL đối tượng được chuyển từ AJAX thành một tệp hình ảnh. Nó không phải cho đến khi tôi đọc lời giải thích của bạn. Lời giải thích ngắn gọn và kỹ lưỡng của bạn đã chấm dứt sự đau khổ của tôi. Cảm ơn bạn. 24 jan. 172017-01-24 16:59:03

  0

Re "* không có gì gọi là Blob URL *"; Đó là tên mà nó được gọi bằng: "[URL của Blob] (https://w3c.github.io/FileAPI/#DefinitionOfScheme)". 06 feb. 172017-02-06 22:01:00

  0

@Pacerier dường như nổi [các phiên bản xung đột] (https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#Parameters) của tên. Nhưng đủ công bằng, W3C là nguồn chính thức vì vậy tôi sẽ cập nhật (nhưng tôi sẽ dự đoán chúng ta sẽ gặp khó khăn với tên phương thức, ví dụ: createObjectURL()). 06 feb. 172017-02-06 23:09:24

  0

@ K3N có thể lấy nguồn đúng của URL blob thay vì URL được tạo không? Nest cam tạo ra một URL blob để ngăn chặn mọi người ghi lại máy ảnh của riêng mình 05 dec. 172017-12-05 03:05:02

  0

giác ngộ cho tôi "BLOB chỉ có nghĩa là Binary Large OBject" 08 jan. 182018-01-08 07:53:07


3

blob url là gì? Tại sao nó được sử dụng?

BLOB chỉ là chuỗi byte. Trình duyệt nhận ra nó là luồng byte. Nó được sử dụng để lấy luồng byte từ nguồn.

Đối tượng Blob đại diện cho một đối tượng giống như tệp dữ liệu thô, không thay đổi. Các đốm màu đại diện cho dữ liệu không nhất thiết phải ở định dạng gốc JavaScript. Giao diện Tệp dựa trên Blob, kế thừa chức năng blob và mở rộng nó để hỗ trợ các tệp trên hệ thống của người dùng.

Tôi có thể tạo url blob của riêng mình trên máy chủ không?

Có bạn có thể có những cách serveral để làm như vậy ví dụ thử http://php.net/manual/en/function.ibase-blob-echo.php

đọc thêm về

  0

Tôi có thể nhận được bất kỳ lợi ích nào bằng cách sử dụng url BLOB không? 16 jun. 152015-06-16 16:01:03

  0

Bạn có thể đọc [this] (http://stackoverflow.com/questions/20950791/html5s-file-api-blob-usages) để có câu trả lời. Rõ ràng có những ưu và khuyết điểm. 16 jun. 152015-06-16 16:07:28

  0

Bạn đang trộn Object-URLs với BLOB. Object-URL là một giao thức giả để cho phép BLOB được sử dụng như nguồn URI. 17 jun. 152015-06-17 00:46:04