在AWS上为Skipper上载创建公共URL

时间:2015-07-22 14:54:57

标签: node.js amazon-web-services amazon-s3 skipper

我使用 Skipper.js 将我的图片上传到Amazon Web Service S3,但是使用网址是不可能的> Skipper.js 即可。我不想使用 Skipper-Disk 我想上传到 S3 ,并且能够创建一个可公开访问的网址来下载该文件。我的代码在下面,这就是我所做的一切

public class MainActivity extends FragmentActivity {

private static final int GPS_ERRORDIALOG_REQUEST = 9001;
GoogleMap mMap;

@SuppressWarnings("unused")
private static final double SEATTLE_LAT = 47.60621,
SEATTLE_LNG =-122.33207, 
SYDNEY_LAT = -33.867487,
SYDNEY_LNG = 151.20699, 
NEWYORK_LAT = 40.714353, 
NEWYORK_LNG = -74.005973;
private static final float DEFAULTZOOM = 15;
private static final String LOGTAG = "Maps";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (servicesOK()) {
        setContentView(R.layout.activity_map);

        if (initMap()) {
            Toast.makeText(this, "Ready to map!", Toast.LENGTH_SHORT).show();
            gotoLocation(SEATTLE_LAT, SEATTLE_LNG, DEFAULTZOOM);
        }
        else {
            Toast.makeText(this, "Map not available!", Toast.LENGTH_SHORT).show();
        }
    }
    else {
        setContentView(R.layout.activity_main);
    }

}

1 个答案:

答案 0 :(得分:2)

看起来你做了所有的上传代码,假设你在文件的顶部:

var skipper = require('skipper-s3')

实际修复与S3配置有关。在AWS S3控制台中,选择存储桶后,您需要选择属性 - >权限 - >编辑存储桶策略。

添加此代码以使您的存储桶具有公共GET请求,但将资源参数中的“bucketName”替换为您的存储桶名称:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucketName/*"
        }
    ]
}