AWS::S3::Errors::InvalidRequest The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.当我尝试将文件上传到新法兰克福地区的S3存储桶时出错.一切都适用于US Standard地区.
脚本:
backup_file = '/media/db-backup_for_dev/2014-10-23_02-00-07/slave_dump.sql.gz'
s3 = AWS::S3.new(
access_key_id: AMAZONS3['access_key_id'],
secret_access_key: AMAZONS3['secret_access_key']
)
s3_bucket = s3.buckets['test-frankfurt']
# Folder and file name
s3_name = "database-backups-last20days/#{File.basename(File.dirname(backup_file))}_#{File.basename(backup_file)}"
file_obj = s3_bucket.objects[s3_name]
file_obj.write(file: backup_file)
Run Code Online (Sandbox Code Playgroud)
aws-sdk(1.56.0)
怎么解决?
谢谢.
我知道https://wiki.apache.org/hadoop/AmazonS3的存在以及以下词语:
S3 Native FileSystem(URI scheme:s3n)用于在S3上读取和写入常规文件的本机文件系统.此文件系统的优点是您可以访问使用其他工具编写的S3上的文件.相反,其他工具可以访问使用Hadoop编写的文件.缺点是S3强加的文件大小限制为5GB.
S3A(URI方案:s3a)S3 Native的继承者s3n fs,S3a:系统使用亚马逊的库与S3交互.这允许S3a支持更大的文件(不超过5GB限制),更高性能的操作等等.文件系统旨在替代S3 Native的/后继者:只需替换URL模式,也可以从s3a访问从s3n:// URL访问的所有对象.
S3 Block FileSystem(URI scheme:s3)由S3支持的基于块的文件系统.文件存储为块,就像它们在HDFS中一样.这允许有效地实现重命名.此文件系统要求您为文件系统专用存储桶 - 不应使用包含文件的现有存储桶,也不应将其他文件写入同一存储桶.此文件系统存储的文件可能大于5GB,但它们不能与其他S3工具互操作.
为什么URI上的字母更改会产生这样的差异?例如
val data = sc.textFile("s3n://bucket-name/key")
Run Code Online (Sandbox Code Playgroud)
至
val data = sc.textFile("s3a://bucket-name/key")
Run Code Online (Sandbox Code Playgroud)
这种变化背后的技术差异是什么?有什么好文章我可以读到这个吗?
也许这只是我遇到这样一个恼人的"功能":
从Xcode 6.0.1升级到Xcode 6.1后,情况发生了变化.Xcode 6.1永远索引项目或编译源文件.该项目不是一个巨大的项目.它只包含工作区中的一堆Swift文件和AWS SDK 2.0 Cocoapods.我不认为它应该阻止整个索引和编译顺利.我尝试了一些aws-sdk-ios-samples,只是为了看看Xcode 6.1如何在它们上工作,它最终在同一个永远等待.
到目前为止我尝试了哪些解决方案:
不幸的是,他们都没有工作.
PS也许我应该尝试重新创建项目?我的电脑设置:MacBook Pro(Retina,13英寸,2014年中),内存8 GB 1600 MHz DDR3,优胜美地.(我认为这足以运行这个小项目.)
有人可以解释如何使用Node.js修复丢失的配置错误吗?我已经按照aws doc页面中的所有示例进行了操作,但无论如何我仍然会收到此错误.
{ [ConfigError: Missing region in config]
message: 'Missing region in config',
code: 'ConfigError',
time: Wed Jun 24 2015 21:39:58 GMT-0400 (EDT) }>{ thumbnail:
{ fieldname: 'thumbnail',
originalname: 'testDoc.pdf',
name: 'testDoc.pdf',
encoding: '7bit',
mimetype: 'application/pdf',
path: 'uploads/testDoc.pdf',
extension: 'pdf',
size: 24,
truncated: false,
buffer: null } }
POST / 200 81.530 ms - -
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
var express = require('express');
var router = express.Router();
var AWS = require('aws-sdk');
var dd = new AWS.DynamoDB();
var s3 = new AWS.S3(); …Run Code Online (Sandbox Code Playgroud) 我想检查使用Java在给定存储桶中是否存在密钥.我查看了API,但没有任何方法有用.我试图使用,getObject但它抛出异常.
假设我有一台机器,我希望能够写入存储在S3存储桶中的某个日志文件.
因此,机器需要具有该存储桶的写入能力,但是,我不希望它能够覆盖或删除该存储桶中的任何文件(包括我想要写入的文件).
所以基本上,我希望我的机器只能将数据附加到该日志文件,而不是覆盖它或下载它.
有没有办法配置我的S3这样工作?也许我可以附加一些IAM策略,以便它可以像我想要的那样工作?
amazon-s3 amazon-web-services aws-sdk amazon-kinesis-firehose
在Node.js项目中,我试图从S3获取数据.
当我使用时getSignedURL,一切正常:
aws.getSignedUrl('getObject', params, function(err, url){
console.log(url);
});
Run Code Online (Sandbox Code Playgroud)
我的参数是:
var params = {
Bucket: "test-aws-imagery",
Key: "TILES/Level4/A3_B3_C2/A5_B67_C59_Tiles.par"
Run Code Online (Sandbox Code Playgroud)
如果我将URL输出带到控制台并将其粘贴到Web浏览器中,它会下载我需要的文件.
但是,如果我尝试使用,getObject我会得到各种奇怪的行为.我相信我只是错误地使用它.这就是我尝试过的:
aws.getObject(params, function(err, data){
console.log(data);
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
输出:
{
AcceptRanges: 'bytes',
LastModified: 'Wed, 06 Apr 2016 20:04:02 GMT',
ContentLength: '1602862',
ETag: '9826l1e5725fbd52l88ge3f5v0c123a4"',
ContentType: 'application/octet-stream',
Metadata: {},
Body: <Buffer 01 00 00 00 ... > }
null
Run Code Online (Sandbox Code Playgroud)
所以它似乎正常运作.但是,当我在其中一个console.logs 上放置断点时,我的IDE(NetBeans)会抛出错误并拒绝显示数据的值.虽然这可能只是IDE,但我决定尝试其他方式使用getObject.
aws.getObject(params).on('httpData', function(chunk){
console.log(chunk);
}).on('httpDone', function(data){
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
这不输出任何东西.在断点处显示代码永远不会到达任何一个console.logs.我也尝试过:
aws.getObject(params).on('success', function(data){
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
但是,这也没有输出任何东西,并且放置一个断点表明console.log …
我试图通过web api将SNS messeges发送到android.从http://aws.amazon.com/developers/getting-started/php/下载并安装了SDK
运行sample.php时出现以下错误:
Fatal error: Uncaught exception 'Aws\Common\Exception\InstanceProfileCredentialsException' with message 'Error retrieving credentials from the instance profile metadata server. When you are not running inside of Amazon EC2, you must provide your AWS access key ID and secret access key in the "key" and "secret" options when creating a client or provide an instantiated Aws\Common\Credentials\CredentialsInterface object. ([curl] 28: Connection timed out after 5016 milliseconds [url] http://169.254.169.254/latest/meta-data/iam/security-credentials/)' in C:\xampp\htdocs\aws-php\vendor\aws\aws-sdk-php\src\Aws\Common\InstanceMetadata\InstanceMetadataClient.php:85 Stack trace: #0 C:\xampp\htdocs\aws-php\vendor\aws\aws-sdk-php\src\Aws\Common\Credentials\RefreshableInstanceProfileCredentials.php(52): Aws\Common\InstanceMetadata\InstanceMetadataClient->getInstanceProfileCredentials() #1 C:\xampp\htdocs\aws-php\vendor\aws\aws-sdk-php\src\Aws\Common\Credentials\AbstractRefreshableCredentials.php(54): Aws\Common\Credentials\Refreshable in …Run Code Online (Sandbox Code Playgroud) php amazon-web-services amazon-sns google-cloud-messaging aws-sdk
我有以下函数用于从我的代码中调用Lambda函数.
但是,当我尝试在Lambda函数中使用它时,我收到以下错误:
AWS lambda undefined 0.27s 3 retries] invoke({ FunctionName: 'my-function-name',
InvocationType: 'RequestResponse',
LogType: 'Tail',
Payload: <Buffer > })
Run Code Online (Sandbox Code Playgroud)
如何在Lambda函数中调用Lambda函数?
我的功能:
'use strict';
var AWS = require("aws-sdk");
var lambda = new AWS.Lambda({
apiVersion: '2015-03-31',
endpoint: 'https://lambda.' + process.env.DYNAMODB_REGION + '.amazonaws.com',
logger: console
});
var lambdaHandler = {};
// @var payload - type:string
// @var functionName - type:string
lambdaHandler.invokeFunction = function (payload, functionName, callback) {
var params = {
FunctionName: functionName, /* required */
InvocationType: "RequestResponse",
LogType: "Tail",
Payload: new Buffer(payload, …Run Code Online (Sandbox Code Playgroud) 我正在尝试阅读Amazon S3上可用的文件,因为问题解释了问题.我找不到已弃用的构造函数的替代调用.
这是代码:
private String AccessKeyID = "xxxxxxxxxxxxxxxxxxxx";
private String SecretAccessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
private static String bucketName = "documentcontainer";
private static String keyName = "test";
//private static String uploadFileName = "/PATH TO FILE WHICH WANT TO UPLOAD/abc.txt";
AWSCredentials credentials = new BasicAWSCredentials(AccessKeyID, SecretAccessKey);
void downloadfile() throws IOException
{
// Problem lies here - AmazonS3Client is deprecated
AmazonS3 s3client = new AmazonS3Client(credentials);
try {
System.out.println("Downloading an object...");
S3Object s3object = s3client.getObject(new GetObjectRequest(
bucketName, keyName));
System.out.println("Content-Type: " +
s3object.getObjectMetadata().getContentType());
InputStream input = …Run Code Online (Sandbox Code Playgroud) aws-sdk ×10
amazon-s3 ×6
node.js ×3
java ×2
javascript ×2
amazon-sns ×1
aws-lambda ×1
deprecated ×1
indexing ×1
osx-yosemite ×1
php ×1
ruby ×1
swift ×1
xcode6.1 ×1