Wir haben eine Website auf Azure gehostet. Es ist medienbasiert und wir verwenden JWPlayer, um Medien mit HTTP-Pseudostreaming wiederzugeben. Die Mediendateien werden auf blob in 3 Formaten gespeichert - mp4, ogg, webm.
Das Problem ist, dass der Inhaltstyp von Mediendateien für alle Typen als Anwendungs- / Oktett-Stream festgelegt ist. Aus diesem Grund gibt es einige Probleme bei der Medienwiedergabe und der Fortschrittsanzeige.
Wie kann ich den entsprechenden Inhaltstyp für auf Blob gespeicherte Dateien festlegen (z. B. Video / MP4, Video / Ogg, Video / WebM)?
Ich möchte es nicht manuell für jede Datei tun, indem ich in die Blob-Oberfläche gehe. Es muss einen anderen Weg geben, den ich nicht kenne. Möglicherweise wird eine Konfigurationsdatei, eine Einstellungsdatei usw. sortiert. Oder vielleicht ein Codeblock zum Einrichten des Inhaltstyps für alle in einem Ordner gespeicherten Dateien.
Irgendwelche Vorschläge? Vielen Dank
quelle
Dies ist ein Arbeitsbeispiel zum Hochladen von Videos in Azure Blob Storage mit dem richtigen Inhaltstyp:
quelle
Leider funktioniert die hier akzeptierte Antwort derzeit nicht für das neueste SDK (12.x. +).
Mit dem neuesten SDK sollte der Inhaltstyp über BlobHttpHeaders festgelegt werden.
var blobServiceClient = new BlobServiceClient("YOURCONNECTIONSTRING"); var containerClient = blobServiceClient.GetBlobContainerClient("YOURCONTAINERNAME"); var blob = containerClient.GetBlobClient("YOURFILE.jpg"); var blobHttpHeader = new BlobHttpHeaders(); blobHttpHeader.ContentType = "image/png"; var uploadedBlob = await blob.UploadAsync(YOURSTREAM, blobHttpHeader);
quelle
Mit PHP kann man das Video hochladen, indem man den Inhaltstyp wie folgt einstellt
quelle
Hier ist was ich tue
quelle
Mit Azure Storage v10 SDK können Blobs mit hochgeladen werden ,
BlockBlobURL
wie in den Node.js instruiert Quickstart :const { Aborter, BlockBlobURL, ContainerURL, ServiceURL, SharedKeyCredential, StorageURL, uploadFileToBlockBlob } = require("@azure/storage-blob"); const containerName = "demo"; const blobName = "quickstart.txt"; const content = "hello!"; const credentials = new SharedKeyCredential( STORAGE_ACCOUNT_NAME, ACCOUNT_ACCESS_KEY ); const pipeline = StorageURL.newPipeline(credentials); const serviceURL = new ServiceURL( `https://${STORAGE_ACCOUNT_NAME}.blob.core.windows.net`, pipeline ); const containerURL = ContainerURL.fromServiceURL(serviceURL, containerName); const blockBlobURL = BlockBlobURL.fromContainerURL(containerURL, blobName); const aborter = Aborter.timeout(30 * ONE_MINUTE); await blockBlobURL.upload(aborter, content, content.length);
Anschließend kann der Inhaltstyp nach dem Upload mit der folgenden
setHTTPHeaders
Methode festgelegt werden:// Set content type to text/plain await blockBlobURL.setHTTPHeaders(aborter, { blobContentType: "text/plain" });
Dateien können mit der
uploadFileToBlockBlob
Methode von hochgeladen werden@azure/storage-blob
.quelle