标签: bucket

使用角色而不是密钥来获取 s3 中的签名 url,但没有返回任何内容,也没有错误

我尝试过,如果我使用访问密钥,它工作正常,但我试图获取访问密钥并使用角色,但是一旦我获取访问密钥。我得到的回报是www.aws.amazon.com

    const AWS = require('aws-sdk');
    const s3 = new AWS.S3();
    const params = {Bucket: config.bucket, Expires: config.time, Key};
    const url = s3.getSignedUrl('getObject', params);
    console.log('The URL is', url);
Run Code Online (Sandbox Code Playgroud)

我什至通过进入我的 ec2 并运行 cli 命令来确保我的角色设置正确,aws s3 presign s3://bucket/path/file该命令工作正常,我得到了签名的 url 作为回报,所以这意味着我的角色是正确的,不是吗?

预先感谢您的任何建议/帮助。

amazon-s3 bucket amazon-web-services pre-signed-url

4
推荐指数
1
解决办法
1558
查看次数

通过模拟 S3 存储桶进行单元测试

我是单元测试的新手,我需要对对象存储类执行一些简单的单元测试。

我有一个名为 OSBucket 的类,如下所示:

def __initBucket(self):        
        
        ecs_session = boto3.Session(
        aws_access_key_id="OSKEY",
        aws_secret_access_key="SECRETKEY"
        ) 

        OS_resource = ecs_session.resource('s3', verify=cert, endpoint_url=endpoint)
        self.mybucket = OS_resource.Bucket(OS_BUCKET)
                
        
def get_mybucket(self): 
        
   return self.mybucket


def download_file(self, fileName,filepath):
        
   self.mybucket.download_file(fileName, filepath)

def upload_file(self, filepath,dest_file_name):   
   self.mybucket.upload_file(filepath, '%s%s' % ("/",dest_file_name))


Run Code Online (Sandbox Code Playgroud)

在类的构造函数中调用方法 __initBucket。

我如何开始创建一个单元测试类来测试,例如 download_file 方法?

更新1

        moto_fake.start()
        conn = boto3.resource('s3', aws_access_key_id="fake_id",
        aws_secret_access_key="fake_secret")
        conn.create_bucket(Bucket="OS_BUCKET")    

        os_bucket = OSBucket.OSBucket(thisRun)

        sourcefile = "testingMoto.txt"   
        filePath = os.path.join("/", sourcefile)   
        os_bucket.upload_file(filePath, sourcefile)  
Run Code Online (Sandbox Code Playgroud)

moto_fake.start()在创建对象之前执行的操作os_bucket对我不起作用。

更新2

使用 patch.object 将端点变量更改为 None,使测试通过

python unit-testing mocking amazon-s3 bucket

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

Google 云存储权限被拒绝

我设置了一个Cloud Run使用Bucketon 的Cloud Storage。我在本地运行它Docker Container,使用文件传递凭据json,从 中创建和下载IAM & Admin,并且它可以工作。部署后,写入存储桶会引发错误:

{
    500 unable to sign bytes: googleapi: Error 403: Permission 'iam.serviceAccounts.signBlob' denied on resource (or it may not exist).
    Details:
    [{
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "domain": "iam.googleapis.com",
        "metadata": {
            "permission": "iam.serviceAccounts.signBlob"
        },
        "reason": "IAM_PERMISSION_DENIED"
    
    }]
    []
}
    
Run Code Online (Sandbox Code Playgroud)

任何想法?

permission-denied bucket google-cloud-storage

4
推荐指数
1
解决办法
1893
查看次数

MongoDB GridFS存储桶?

我使用MongoDB C#Samus驱动程序.

MongoDB.GridFS.GridFile类的构造函数之一具有参数"bucket".当我在Java中创建GridFile像例如我不能设置这个"桶".但是我可以在创建GridFS对象Java文档时在Java中设置这个"桶" .我糊涂了!

我的问题:

什么是"桶"?为了什么?请告诉一些用例;)

c# bucket mongodb gridfs mongodb-.net-driver

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

Sitecore 8:保存时同步存储桶项目

我已经看到了我们如何为新创建的存储桶项提供默认条件和默认操作.我也知道我们可以根据自定义日期字段创建自定义规则来构建路径.

但是,如何在日期字段和保存时设置项目路径.考虑一个例子.我们有一个桶项目模板说"新闻",其日期字段说"发布日期".我们有项目创建的设置,项目路径的创建日期如"/ News/2015/09/16/item1".现在,我们需要有一些逻辑,我们可以在更新"item1"的"发布日期"并且项目已保存时更改路径.

当项目的发布日期更新且项目被保存时,我们如何更新项目路径!我需要在OnItemSaved()方法中实现一些逻辑吗?

我已经在GeekHive发帖了

sitecore bucket sitecore7 sitecore7.2 sitecore8

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

要上传到S3的批处理文件

我需要开发一个批处理文件,它会将多个小文本文件(4KB - 100KB)发送到S3存储桶中的文件夹.受到来自http://tmont.com/blargh/2014/1/uploading-to-s3-in-bash的bash脚本的启发,我开发了下面列出的批处理脚本.此脚本使用以下依赖项:

效果很好; 但是,有时文件或多个文件不会上传,我会收到"HTTP/1.1 403 Forbidden/SignatureDoesNotMatch."这似乎是签名问题,可能是在创建签名时.这种行为似乎没有一种模式.为了测试,我使用8个文本文件进行上传.我可以多次运行它,导致每次都上传所有文件,下次脚本只会上传5,6或7个.我有点不知道为什么会发生这种情况.任何建议,将不胜感激.

@echo off
setlocal enableDelayedExpansion

for /f %%f in ('dir /b *.txt') do (

REM Set date/time variables
for /f "tokens=1-4 delims=/ " %%a in ('date /t') do set dow=%%a&&set day=%%c&& set month=%%b&&set year=%%d
for /f "tokens=1-4 delims=:,. " %%h in ('echo %time%') do set hour=%%h&set min=%%i&set sec1=%%j&set sec2=%%k

REM Obtain three letter month value for DateValue HTTP Header
IF !month! == 01 set mname=Jan
IF …
Run Code Online (Sandbox Code Playgroud)

upload batch-file amazon-s3 bucket amazon-web-services

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

为什么hashcode()返回一个整数但不长?

在java中,hashcode()方法返回整数而不是long.有什么具体原因吗?

java arrays performance hashcode bucket

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

如何附加 AWS S3 存储桶通知配置

尝试将新通知附加到存储桶。在互联网上找不到任何示例。

我需要将 ObjectCreated 事件发送到 SQS。我需要决定事件由前缀发送到哪个队列。因此,每个通知在同一个桶上会有不同的队列和前缀。

问题是我无法附加新通知。我只是覆盖了之前在存储桶中配置的通知。

这是我到目前为止的代码:

    bucket_notifications_configuration = {
        'QueueConfigurations': [{
            'Events': ['s3:ObjectCreated:*'],
            'Id': f"Notif_{queue_name}",
            'QueueArn': queue.attributes['QueueArn'] ,
            "Filter": {
                "Key": {
                    "FilterRules": [
                        {
                        "Name": "suffix",
                        "Value": f"{prefix}"
                        }
                    ]
                }
            }               
        }]
    }
    qpolicy = {
        "Version": "2012-10-17",
        "Id": f"{queue_arn}/SQSDefaultPolicy",
        "Statement": [{
            "Sid": f"allow bucket {bucket} to notify queue {queue_name}",
            "Effect": "Allow",
            "Principal": {"AWS": "*"},
            "Action": "SQS:SendMessage",
            "Resource": queue_arn,
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": f"arn:aws:s3:*:*:{bucket}"
                }
            }
        }]
    }

    queue_attrs = queue.attributes
    queue_attrs = {"Policy": json.dumps(qpolicy), } …
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 bucket amazon-sqs amazon-web-services

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

从Hive SQL中的第n个存储桶获取所有记录

如何从配置单元中的第n个存储桶中获取所有记录。

从存储桶9中选择* from bucketTable;

hive bucket bigdata apache-spark apache-spark-sql

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

我需要在 s3 存储桶中配置 CORS 我拥有的代码不是有效的 JSON

我正在尝试从我的 s3 照片桶制作照片库。我流程的下一步是配置 CORS,但是当我使用提供的代码时,出现错误。有人可以解释我做错了什么或如何将代码更改为有效的 JSON?

感谢您的帮助,不胜感激。对此非常陌生。

https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-photos-view.html

跨域资源共享 (CORS) CORS 配置以 JSON 编写,为加载在一个域中的客户端 Web 应用程序与不同域中的资源进行交互定义了一种方式。了解更多 ??CORS 配置必须以有效的 JSON 编写。API 响应预期 params.CORSConfiguration.CORSRules 是一个数组

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>HEAD</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

gallery amazon-s3 bucket

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