小编Mat*_*aNg的帖子

AWS S3获取不是有效的位图文件

我一直在努力解决这个问题,我会尽可能多地向你提供信息(有些可能无关紧要),因为我完全陷入困境.我正在使用Ionic,我希望能够用我的手机拍照并将其上传到AWS S3存储桶.我用Cordova相机来完成这个任务.

我所知道的; 这些图片以大型base64字符串形式出现,我必须将其转换为Blob,将其转换为File对象,然后将该文件对象上传到AWS.但是,当我这样做时,它总是将其上传为图像之外的其他内容.每当我打开它时,我都会收到错误消息:

"Not a valid bitmap file.  its format is not currently supported."
Run Code Online (Sandbox Code Playgroud)

https://s3.amazonaws.com/mng-moment/moment/PA/40.008446_-75.26046_1502414224619.jpg

这是一个WORKING的示例(这曾经以某种方式工作):

https://s3.amazonaws.com/mng-moment/bestMoments/40.008446_-75.26046_1499659199473.jpg

我试图在文本编辑器中打开每个文件,看看发生了什么.对于第一个(破碎的)我得到这个:

在此输入图像描述

当我尝试在文本编辑器中打开工作时,我得到这个:

在此输入图像描述

现在它似乎是转换问题,但我认为我正在正确转换它.这是我用来上传的代码(您可以稍后在帖子上看到console.logs):

在此输入图像描述

core.js

在此输入图像描述

awsServices.js

在此输入图像描述

如果您查看代码中的注释,我会标记一些控制台日志.我将在这里显示它们以获取更多信息:

A - (uploadToAWS):

A(uploadToAWS)

B - (awsServices.upload):

B(awsServices.upload)

这就是我将dataURI转换为Blob的方法(在uplpoadToAWS中调用 - 第一个截图):

在此输入图像描述

这是传递到上面代码中的'dataURI'参数的内容: 在此输入图像描述

如果有更多信息,请告诉我.我一直在摸不着头脑.任何帮助表示赞赏.谢谢!

javascript blob image amazon-s3 cordova-plugins

11
推荐指数
1
解决办法
256
查看次数

CSS:我的 body 标签不起作用

由于某些疯狂的原因,我的身体标签根本不起作用。这是唯一一个不起作用的 CSS。我试图了解网站内容背后的背景,并让内容占正文的 80% 左右。这样我就可以在网站的两侧有两个栏,充当边框。堆栈溢出的两侧似乎都有两个白条。

 <style type="text/css">

body{
    font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
    background-color: #000;
    margin: 0;
    padding: 0;
    color: #000;
}

#content {
    font: 14px/1.4 'Times New Roman', sans-serif;
    width: 80%;
    max-width:1260px;
    min-width: 780px;
    background-color: #89837A;
    margin-left: auto;
    margin-right: auto;
}
Run Code Online (Sandbox Code Playgroud)

这是 HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<!--Replace link with good web font you want.<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow' rel='stylesheet' type='text/css' /> - See more at: http://www.newthinktank.com/2011/09/how-to-layout-a-website/#sthash.lWAaNgcS.dpuf -->

<link …
Run Code Online (Sandbox Code Playgroud)

html css

8
推荐指数
1
解决办法
2万
查看次数

Ionic - 无法加载空的config.xml文件

当我尝试运行离子cordova运行android时,我得到一个无法加载空的config.xml文件.以前有没有人遇到过这个问题?离子服务似乎有效.

在此输入图像描述

node.js ionic-framework

6
推荐指数
3
解决办法
6169
查看次数

如何使用 jest 模拟私有变量

我正在尝试为这样的函数编写单元测试:

export class newClass {
    private service: ServiceToMock;

    constructor () {
    this.service = new ServiceToMock()
    }

    callToTest () {
        this.service.externalCall().then(()=> {
        //Code to test
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

为了测试这段代码,我需要模拟服务,因为它调用类外部的函数,但问题是它是私有的。

我到底如何用笑话模拟私有变量?该类创建了它自己的实例,那么是否可以模拟出来?

unit-testing typescript reactjs jestjs

6
推荐指数
1
解决办法
2万
查看次数

Android Studio无法检测到三星S5

我有一个SAMSUNG S5,我开始学习如何在Android中编程.起初Android Studio检测到我的设备,我能够很好地测试我的程序,但突然间它再也找不到它了.每次我在Android设备监视器中"重置adb"时,它总是给我这个错误:

Adb connection Error:An existing connection was forcibly closed by the remote host
Run Code Online (Sandbox Code Playgroud)

我的电脑检测到我的设备,但Android Studio没有.

我试过重启Android工作室和我的整台电脑.

我尝试过不同的USB端口和USB.

我也试过卸载并重新安装驱动程序.

什么都行不通,请帮助,谢谢.

android ddms

3
推荐指数
3
解决办法
3万
查看次数

茉莉花测试没有进入承诺的 then 部分

我想测试这个功能:

    function initializeView() {
        var deferred = $q.defer();
        if(this.momentArray) {
            core.listMoments(constants.BEST_MOMENT_PREFIX, '').then(function(moments) {
                //Ommitted
                deferred.resolve(moments);      
            }, function(error) {
                console.log("ERROR");
                deferred.reject(error);
            });
        }
        else {
            deferred.resolve();
        }
        return deferred.promise;    
    };
Run Code Online (Sandbox Code Playgroud)

该函数调用 core.listMoments:

    function listMoments(prefix, startAfter) {
        // var deferred = $q.defer();
        var promises = [];
        return awsServices.getMoments(prefix, startAfter).then(function(moments) { //Mocked
            console.log("getMoments Returned"); //Does not print
            for(var i = 0; i < moments.length; i++) {
                // moments[i].Key = constants.IMAGE_URL + moments[i].Key;
                promises.push(getMomentMetaData(moments[i]));
            }
        return $q.all(promises);
        });
    };
Run Code Online (Sandbox Code Playgroud)

这是我的测试功能:

it('Should correctly initialize the …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jasmine angularjs

3
推荐指数
1
解决办法
3640
查看次数

Yield 调用返回一个承诺

所以我正在尝试学习react-redux-saga。我正在构建一个简单的应用程序,仅从 API 获取用户数据并显示它。这是我的传奇中的生成器函数:

export function* fetchImage() {
      try {
        const response = yield call(fetch, 'https://randomuser.me/api/');
        console.log("Response 111", response);
        const responseBody = response.json();
        yield put(setImage(response));
      } catch (e) {
        yield put(fetchFailed(e));
      }
      return;

    }
Run Code Online (Sandbox Code Playgroud)

它只是对 url 进行一次yield 调用,然后分派一个操作。但是,响应对象不会以 JSON 形式返回,而是看起来返回一些响应对象:

在此输入图像描述

我不知道如何处理这个对象。如果您直接通过浏览器点击 URL,它会返回一个 JSON 对象。我如何让它返回 JSON?

所以我的response.json() 返回这个对象:

在此输入图像描述

看起来我想要的对象在 [[PromiseValue]] 中。那是什么以及我如何实现我的价值?

saga reactjs redux-saga react-redux

3
推荐指数
1
解决办法
1万
查看次数

AWS S3:我们计算的请求签名与您提供的签名不匹配

我正在尝试使用 AWS S3 SDK 上传图片。现在这之前有效,但由于某种原因它停止工作,我开始收到此错误:

在此处输入图片说明

现在,当我点击链接时,它给了我一个“NoSuchKey”错误:

在此处输入图片说明

我不太明白这一点,因为我的密钥实际上只是一个字符串。我也在尝试上传一些东西,所以显然密钥不存在 - 我正在尝试上传它!

function initiateBucket() {
        var albumBucketName = 'bucket_name';
        var bucketRegion = 'us-east-1';
        var IdentityPoolId = 'identity_pool_id';

        AWS.config.update({
            region: bucketRegion,
            credentials: new AWS.CognitoIdentityCredentials({
                IdentityPoolId: IdentityPoolId
            })
        });

        return new AWS.S3({
            apiVersion: '2006-03-01',
            params: {Bucket: albumBucketName}
        });

function upload(file, key, metaData) {
    var temp = 'test';
    var temp1 = "test";
    if(verifyMetaData(metaData)) {
        var s3 = vm.initiateBucket();
        console.log(s3);
        s3.upload({
            Key: temp,
            Body: temp1,
            ACL: 'public-read',
            Metadata: metaData
        }, function(err, data) {
            if (err) {
                console.log(err.message); …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 amazon-web-services

0
推荐指数
1
解决办法
8557
查看次数