簡體   English   中英

如何從 nodejs aws s3 getObject 回調數據中檢索元數據?

[英]How to retrieve the Metadata from nodejs aws s3 getObject callback data?

我正在嘗試使用 AWS 節點 SDK 向/從 S3 上傳/下載音頻塊文件。 我嘗試過 base64 方法,效果很好。 但是我無法取回作為上傳參數的一部分捆綁的元數據。

以下是上傳元信息的代碼片段:

var myMetaInfo = "AdditionalInfo", dataToUpload = {Bucket: bucketName, Key:storageFolderFullPath , Body: myAudioFile.toString('base64'), Metadata: {metaInfo: myMetaInfo}};
s3.client.putObject(dataToUpload, function(err, data) {
    if (!err) {
        console.log("Successfully uploaded the file to ::" + dataToUpload.Bucket);            
    } else {
        console.log(" **** ERROR while uploading ::"+err);            
    }        
}); 

這是下載文件的片段。 元數據不是回調數據的一部分。 我嘗試將回調“數據”打印到控制台,並注意到只有以下參數可用 LastModified、ContentType、ContentLength、ETag、Body、RequestId

var dataToDownload = {Bucket: bucketName, Key: storageFolderFullPath}, originalFile, myMetaInfo;
s3.client.getObject(dataToDownload, function(err, data) {
    if (!err) {            
        originalFile = new Buffer(data.Body, 'base64');
        myMetaInfo = data.Metadata.metaInfo;
        console.log(" Meta info:: " + myMetaInfo);
        fs.writeFile(fileStoragePath, originalFile, function(err) {
            if (!err) {
                console.log(" File written!! ");
            } else {
                console.log(" Error while writing the file !!" + err);
            }
        });
    } else {
        console.log(" **** ERROR while downloading ::"+err);            
    }
});

關於我的實現有什么問題的任何指示? 我遵循了這里提到的文檔

任何幫助表示贊賞。

你的metaInfo值是一個字符串嗎?

參考sdk api 文檔Metadata是一個字符串映射(ala ~ Metadata: {metaInfo: "myMetaInfoString"} 。我已經使用字符串作為metaInfo的值測試了您的代碼,它確實在data.Metadata.metaInfo下正確返回參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM