node.js从http请求列表中将图像下载到服务器

时间:2016-04-05 16:13:07

标签: javascript node.js request tableau tableau-server

我在节点很新,所以请耐心等待。我正在尝试从外部服务器下载一系列图像。到目前为止,我已经能够在有限的基础上开展工作。当我运行下面的代码时,只有大约一半的图像进入网页。我知道我没有正确地做到这一点,我正在寻找一些指导。这是我到目前为止的代码

ProgressDialog progressdialog = new ProgressDialog(getActivity());
progressdialog.show();
if(progressdialog.isShowing())
{
progressdialog.dismiss();
}

我想指出这确实可以保存一些图像。我相信我缺少的是一个回调,以确保文件已成功保存,然后再转到列表中的下一个项目。我不知道如何实现它。

另一个快速说明(不重要)是我正在尝试使用REST API从Tableau Server下载图像。

2 个答案:

答案 0 :(得分:1)

您获得大约一半图像的面孔让我想知道您是否使用Tableau Online?如果是这样,您需要确保按照文档(http://onlinehelp.tableau.com/current/api/rest_api/en-us/help.htm#REST/rest_api_concepts_fundamentals.htm#tableau-online-uris)使用URI。

答案 1 :(得分:0)

刚刚使用异步模块

计算出来
async.eachSeries(views, (function(view, callback) {
            var thumbPath = 'public/images/thumbnails/' + req.session.SITE + '/views/' + req.session.views[view]['url'] + '.png'
                request({
                    url: 'http://' + SERVERURL + '/api/2.2/sites/' + req.session.siteID
                        + '/workbooks/' + req.session.views[view]['workbookID'] + '/views/' + req.session.views[view]['id'] + '/previewimage',
                    headers: {
                        'Content-Type': 'image/png',
                        'X-Tableau-Auth': req.session.authToken
                    }
                    }).pipe(
                        upload(thumbPath));
                    callback()
            }),
            function(err){
                if(err){
                    console.log("a thumb failed to download")
                } else {
                    console.log("all thumbs downloaded")
                }
            }
        )