小编Sar*_*tts的帖子

如何从Node.js中的S3 getObject获得响应?

在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 …

javascript amazon-s3 node.js aws-sdk aws-sdk-nodejs

58
推荐指数
8
解决办法
9万
查看次数

AWS S3:存储桶无法使用 ObjectOwnership 的 BucketOwnerEnforced 设置设置 ACL)

在我的网站上,突然无法上传照片。我收到以下错误:

##### RightAws::S3Interface returned an error: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidBucketAclWithObjectOwnership</Code><Message>Bucket cannot have ACLs set with ObjectOwnership's BucketOwnerEnforced setting</Message><RequestId>REQUEST</RequestId><HostId>ID$
##### RightAws::S3Interface request: https://bucket.s3.amazonaws.com:443/ ####

RightAws::AwsError (InvalidBucketAclWithObjectOwnership: Bucket cannot have ACLs set with ObjectOwnership's BucketOwnerEnforced setting):
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当这曾经起作用时,我这边没有任何改变。AWS 确实发送了这封电子邮件,这封电子邮件似乎相关,但应该只适用于新的存储桶:

你好,

我们特此通知您,从 2023 年 4 月开始,Amazon S3 将更改所有新 S3 存储桶的默认安全配置。对于此日期之后创建的新存储桶,将启用 S3 阻止公共访问,并禁用 S3 访问控制列表 (ACL)。

大多数 S3 用例不需要公共访问或 ACL。对于大多数客户而言,无需执行任何操作。如果您有公共存储桶访问或使用 ACL 的用例,您可以在创建 S3 存储桶后禁用阻止公共访问或启用 ACL。在这些情况下,您可能需要更新自动化脚本、CloudFormation 模板或其他基础设施配置工具来配置这些设置。要了解更多信息,请阅读有关此更改的 AWS 新闻博客 [1] 和新增公告 [2],或访问我们的 S3 阻止公共访问 [3] 和 S3 对象所有权以禁用 ACL [4] 的用户指南。另请参阅有关这些设置的 AWS CloudFormation …

amazon-s3 amazon-web-services

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

在Windows上的Ubuntu上打开Bash的Sublime文本

我似乎无法弄清楚如何在Windows上的Ubuntu上从Bash打开Sublime Text 2.最终我希望能够用来subl .打开我所在目录的内容.

在我的机器上,Sublime Text 2安装在C:\Program Files\Sublime Text 2. sublime_text.exe位于此目录中.在bash在Ubuntu在Windows上,我可以访问位于任何文件C通过/mnt/c/.

我尝试设置别名:alias subl="/mnt/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe".但是,在尝试时subl .我收到以下错误:

无法执行二进制文件:exec格式错误

如何正确设置?

linux windows bash ubuntu sublimetext

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

Node.js中的Hash_hmac等价物

我的代码在我的PHP应用程序中运行.在PHP中,我使用以下代码对URL进行签名:

private static function __getHash($string)
{
    return hash_hmac('sha1', $string, self::$__secretKey, true);    
}
Run Code Online (Sandbox Code Playgroud)

我试图在Node.js应用程序中以相同的方式签署URL.这就是我正在尝试的:

S3.prototype.getHash = function(string){
    var key = this.secret_key; 
    var hmac = crypto.createHash('sha1', key);
    hmac.update(string); 
    return hmac.digest('binary'); 
}; 
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

我们计算的请求签名与您提供的签名不匹配.检查您的密钥和签名方法.

这些代码片段做同样的事情吗?我错过了什么吗?

javascript php sign amazon-s3 node.js

11
推荐指数
2
解决办法
6695
查看次数

AngularJS和PHP应用程序中的会话

我有一个AngularJS应用程序,我正在更新以使用PHP 7.目前我有一个自定义会话处理程序设置为会话:

自定义会话处理程序(session.php)

function sess_open( $path, $name ) {
    return true;
}

function sess_close( ) {
    $sessionId = session_id(); 
    return true;
}

function sess_read( $id ) {
    $db = dbConn::getConnection();

    $stmt = "SELECT session_data FROM session where session_id =" . $db->quote($id);
    $result = $db->query($stmt);
    $data = $result->fetchColumn();
    $result->closeCursor();
    return $data;
}

function sess_write( $id, $data ) {
    $db = dbConn::getConnection();

    $tstData = sess_read( $id );
    if (!is_null($tstData)) {
        // if it does then do an update
        $stmt = "UPDATE session …
Run Code Online (Sandbox Code Playgroud)

javascript php session angularjs php-7

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

使用Jquery基于td值更改行颜色

我有一个从数据库填充的表.我有2个条件需要申请

  1. 将Zebra条纹应用于表格(已完成)
  2. 将行颜色更改为基于红色的td值

`

<tr class="alt">
    <td class="status"><input type="text" value="One"></td>
    <td class>Received</td>
</tr>
<tr class="alt">
    <td class="status"><input type="text" value="One"></td>
    <td class>Received</td>
</tr>
<tr class="alt">
    <td class="status"><input type="text" value="Zero"></td>
    <td class>Received</td>
</tr>
<tr class="alt">
    <td class="status"><input type="text" value="One"></td>
    <td class>Received</td>
</tr>
<tr class="alt">
    <td class="status"><input type="text" value="Zero"></td>
    <td class>Received</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

`

$(document).ready(function()
{
$("tr.alt:even").css("background-color", "#f0f8ff");
$("tr.alt:odd").css("background-color", "#fcfceb");
});

$(document).ready(function() {
   $('.status.val():contains("Zero")').closest('tr.alt').css('background-color', '#cd0000');
});
Run Code Online (Sandbox Code Playgroud)

我想根据输入值更改行颜色

<td class="status"><input type="text" value="One"></td>

这是我到目前为止所做的一个小提琴

很感激帮助.

html css jquery jsp

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

如何在JMeter中默认对服务器名称的HTTP请求以及其后的路径

我是JMeter的新手,现在很难弄清楚如何使我的默认URL成为我想要的样子。现在,我已经HTTP Request Defaults在测试计划中添加了一个config元素。在“ Web服务器”框中,我具有以下格式的网址:

testproject.company.com 
Run Code Online (Sandbox Code Playgroud)

我实际上想要的默认URL是

testproject.company.com/test
Run Code Online (Sandbox Code Playgroud)

我尝试的第一件事是将设置Server Name or IPtestproject.company.com/test,但这给了我一个错误

java.net.UnknownHostException:testproject.company.com/test

接下来,我Server Name or IP回到[ HTTP Request]部分,testproject.company.com并在其中填写以下Path内容:

/test
Run Code Online (Sandbox Code Playgroud)

这不会引起任何错误,但是我的所有测试都失败了,因为它只是testproject.company.com用作默认URL。


我也在使用Project Files配置,并且在“配置CSV数据源”部分的Filename框中,具有.csv文件的路径。.csv文件具有以下内容:

testproject.company.com/test/,username@testproject.train,10,true,WIN
Run Code Online (Sandbox Code Playgroud)

是什么/test导致JMeter无法添加到默认URL?

csv apache testing url jmeter

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

我可以在不注销的情况下获得更新的 emailVerified 吗?

我的注册过程有以下流程:

  1. 用户填写详细信息并注册(获取发送验证电子邮件)

  2. 此用户登录后,但会看到一个要求进行电子邮件验证的屏幕

  3. 用户验证他们的电子邮件并返回应用程序

在这个阶段,如何在emailVerified不注销用户的情况下获取具有字段的新用户数据?

我希望auth().onAuthStateChanged一旦emailVerified更改为 true就会被解雇,但这不会发生,我也无法在 firebase 文档中找到任何刷新功能来手动获取此数据。

我可以获得新值的唯一方法emailVerified是注销并重新登录,但理想情况下希望避免这种情况。


更新:这是使用 JavaScript SDK

javascript firebase firebase-authentication

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

如何使用 mediawiki 将字符串中的第一个字母大写?

如何在 Mediawiki 中将字符串(或每个单词)的第一个字母大写?在这种情况下,字符串只是一个单词,因此将每个单词的第一个字母大写也可以。

我想做类似的事情

{{#capitalize:string}}
Run Code Online (Sandbox Code Playgroud)

并得到输出

String
Run Code Online (Sandbox Code Playgroud)

我已经尝试过

{{#titleparts:mystring}}
Run Code Online (Sandbox Code Playgroud)

但它根本不会改变我的字符串(在http://sv.wiktionary.org尝试过)

string mediawiki uppercase wiktionary

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

如何格式化Swagger UI 3.x中的描述中的代码块?

我想在我的API描述中放一个Markdown代码块,但是Swagger UI似乎正在读取,好像它是一个单行代码片段一样。我目前有:

description: |
    This API was created to allow interaction with the Image Status Database (ISD)

    ## Requests

    ## Responses
    In the case of a successful response, you will always receive a `data` key
    that contains your data.
    ```
    {
        "meta": {
            "code": 200
        },
        "data": {
            ...
        },
        "pagination": {
            "next_url": "...",
            "next_max_id": "13872296"
        }
    }
    ```
Run Code Online (Sandbox Code Playgroud)

显示为:

Swagger UI屏幕截图

但是,Swagger编辑器显示正确的代码块:

Swagger编辑器屏幕截图

Swagger UI不支持此功能吗?

swagger swagger-ui swagger-2.0 swagger-editor

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