2

비디오를 업로드하고 데이터 저장소에 blobReferenceProperty()로 저장할 수있는 간단한 비디오 공유 웹 사이트가 있습니다. 이제 해당 비디오에 대한 데이터 저장소를 쿼리하고 html 5 비디오 태그로 imbed/play하려고합니다. html 5 비디오 태그가 경로를 원하므로 blobstore에 저장된 비디오 경로를 찾아야합니다.GAE blobstore python에 저장된 html 비디오 태그로 비디오 재생

문제는 blob_key에서 비디오가 blob_key로 돌아올 때 blob_key로 반환된다는 것입니다. 누구든지 html 5 비디오 태그로 재생할 수 있도록 blob_key의 경로를 얻는 방법을 알고 있습니다. 내가 그것을 넣을 수 있도록

class Videos(db.Model): 
    videoID = db.IntegerProperty() 
    content = blobstore.BlobReferenceProperty() 

vids = db.GqlQuery("SELECT * FROM Videos WHERE videoID = :1", v_id) 
    for v in vids: 
     vid_key = v.content 

는 지금은 장해 키의 경로를 원하는 ???? are

<video controls> 
    <source src="????" type="video/mp4"> 
    <p>Your browser does not support the HTML5 video element.</p> 
</video> 

어떤 아이디어가 있습니까?

이미이

class Play(blobstore_handlers.BlobstoreDownloadHandler): 
    def get(self, vid_id): 
     vid_key = None 
     vids = db.GqlQuery("SELECT * FROM Videos WHERE videoID = :1", int(vid_id)) 
     for v in vids: 
      vid_key = v.content 
     if (vid_key == None): 
      self.error(404) 
     else: 
      self.send_blob(vid_key) 

이 지금 내 코드는 동영상을 전체 화면으로 역할처럼, 나는에 새겨 져 비디오를 재생하려면이 옵션을 전환하려는 보이는 다운로드 핸들러가

[편집] 내 HTML 5 비디오 태그 내의 웹 사이트. 같은 페이지에 의견과 등급이 있습니다.

+0

처리기를 응답 페이지로 사용하고있는 것처럼 보입니다. 따라서 URL을 비디오 URL로 직접 보내려고 할 때 처리기를 응답 페이지로 사용하는 것처럼 보입니다. 처리기를 호출하는 별도의 응답 페이지를 사용해보십시오. 문제가있는 경우 코드 예제를 제공 할 수 있습니다. –

+0

예 응답 페이지로 사용하고 있습니다. 그러나 나는 그것이 내가하고 싶은 일이라고 생각한다. 코드로 비디오를 제공하는 대신 self.send_blob (vid_key) - 변수를 설정하고 blob_key의 경로로 'path'를 호출 할 수 있습니다. 어떻게 다른 응답 페이지로 분리하면 도움이됩니까? –

+1

나는 그것을 이해했다. 동영상을 게재 할 때 동영상에 대한 URL을 제공했습니다. HTML 비디오 태그에 소스를 동적으로 제공하기 위해 해당 URL을 가져 와서 각 개별 비디오 ID에 넣었습니다. 모든 도움을 주셔서 감사합니다. –

답변

1

블롭을 제공하려면 BlobstoreDownloadHandler를 만들어야합니다. 가장 쉬운 방법은 blob 키의 문자열 표현 (예 : mypath.com/blobs/blobkey)을 사용하여 URL에 blob 리소스를 식별하는 것입니다. 그러면 비디오 모델의 참조 속성을 사용하여 해당 URL을 쉽게 참조 할 수 있습니다.

BlobstoreDownloadHandler를 만들려면 herehere 설명서를 참조하십시오.

+0

제 질문에 일부 수정 사항을 추가했습니다. @ewestern –