NEQTO Docs
  • Languages icon日本語
    • English
  • ドキュメント
  • API
  • FAQ

›Integration

Getting Started

  • NEQTO Hello World!
  • Tutorial Step 1. NEQTO Console設定
  • Tutorial Step 2. デバイス設定とサービスの開始 (NEQTO Bridge)
  • Tutorial Step 2. デバイス設定とサービスの開始 (STM32 Discovery)
  • Tutorial Step 2. デバイス設定とサービスの開始 (SPRESENSE)
  • Tutorial Step 3. スクリプトを使ったアプリケーション開発

NEQTO

  • NEQTO アカウント登録
  • サブアカウント
  • APIの利用
  • NEQTO Engineファームウェアリスト
  • お問い合わせに関するガイドライン
  • NEQTO 製品を安全に安心してご使用いただくために
  • 脆弱性開示ポリシー

NEQTO Console

  • はじめに
  • 基本情報
  • 管理者専用の操作
  • デバイス管理
  • Linuxデバイス管理
  • 一括登録
  • スクリプト
  • アクション & コンタクト
  • Consoleでデータを表示
  • NEQTO Apps

    • NEQTO Apps について
    • NEQTO Infinitypool
    • NEQTO Insights
    • NEQTO Custodia
    • NEQTO Flow
  • Machine Driver
  • 推奨ブラウザ
  • 請求情報

SPRESENSE

    ハードウェア仕様

    • 01. About Spresense

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. Spresense Wi-Fi 初期設定
    • 04. Spresense LTE-M 初期設定
    • 05. デバッグログ取得方法
    • 06. システムLED動作
    • 07. イベントメッセージ
    • 08. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. GPIO
    • 12. UART
    • 13. SPI
    • 14. I2C
    • 15. ADC
    • 16. GNSS
    • 17. Camera
    • 18. Utils
    • 19. nqSpresense
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte

STM32 Discovery

    ハードウェア仕様

    • 01. About STM32 Discovery Kit (B-L4S5I-IOT01A)

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. 初期インストール
    • 03. STM32 Discovery Wi-Fi 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 18. Utils
    • 19. nqDiscovery
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi

NEQTO Bridge

    ハードウェア仕様

    • 01. NEQTO Bridge Module
    • 02. NEQTO Bridge Wi-Fi Module
    • 03. NEQTO Bridge LTE-1 Module
    • 04. NEQTO Bridge LTE-M/NB Module
    • 05. NEQTO Bridge IO Board
    • 06. NEQTO Bridge Digital IO Board
    • 07. NEQTO Bridge Connector Board

    ソフトウェア仕様

    • 01. 動作フロー
    • 02. NEQTO Bridge Wi-Fi Module 初期設定
    • 03. NEQTO Bridge LTE Module 初期設定
    • 04. デバッグログ取得方法
    • 05. システムLED動作
    • 06. イベントメッセージ
    • 07. ファームウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. Sleep
    • 10. RTC
    • 11. UserSW
    • 12. GPIO
    • 13. UART
    • 14. SPI
    • 15. I2C
    • 16. ADC
    • 17. BLE
    • 18. Utils
    • 19. nqBridge
    • 20. nqService
    • 21. nqMqtt
    • 22. nqFOTA
    • 23. nqWiFi
    • 24. nqLte
    • 25. nqLAN
    • 26. nqEx

Linux-based device

    ソフトウェア仕様

    • 01. システム要件
    • 02. インストール
    • 03. ソフトウェア構成
    • 04. 動作フロー
    • 05. デバッグログ取得方法
    • 06. イベントメッセージ
    • 07. ソフトウェア更新方法

    neqto.js

    • 01. About neqto.js
    • 02. Log
    • 03. Timers
    • 04. HTTP
    • 05. HTTPS
    • 06. MQTT
    • 07. Secure
    • 08. Storage
    • 09. RTC
    • 10. UNIXSocket
    • 11. FileSystem
    • 12. SubProcess
    • 13. SubTask
    • 14. Queue
    • 15. Utils
    • 16. nqLinux
    • 17. nqService
    • 18. nqMqtt
    • 19. nqFOTA
    • 20. nqLAN

neqto.js Libraries

  • About neqto.js Libraries
  • UART

    • GM65 Barcode Reader
    • SRF Ultrasonic Range Finder - Serial Mode

    I2C

    • HTS221 v2 Temperature and Humidity Sensor
    • LIS2DW12 v2 Accelerometer
    • SRF Ultrasonic Range Finder - I2C Mode
    • [Archive] HTS221 Temperature and Humidity Sensor
    • [Archive] LIS2DW12 Accelerometer

    Utils

    • RTC Alarm Synchronized Scheduler

    Integration

    • AWS S3 v2
    • AWS IoT Core v2
    • Azure IoT v2
    • [Archive] GCP IoT Core
    • [Archive] AWS S3
    • [Archive] AWS IoT Core

neqto.js Snippets

  • About neqto.js Snippets
  • DataDog
  • Dropbox
  • Google Sheets
  • InfluxDB
  • Oracle Cloud Object Storage
  • Salesforce
  • Splunk
  • Niagara
  • [Archive] SAP Cloud Platform Internet of Things

Release Notes

  • NEQTO Console アップデート
  • NEQTO Firmware (Bridge Wi-Fi/LTE Module) リリース
  • NEQTO Firmware (STM32 Discovery Wi-Fi) リリース
  • NEQTO Firmware (Spresense Wi-Fi/LTE-M) リリース
  • NEQTO Engine Linux版 リリース
  • neqto.js Libraries リリース

AWS S3 v2

このライブラリは、Amazon Simple Storage Service (Amazon S3)と通信する機能を提供する組み込みクラスです。

Library usage requirements
Type Integrations
Name AWS_S3_V2
Version 2.1.0
Code size used 10.2KB
Resources used HTTPS x 1, Timers x 1

関連資料

  • AWS S3に関する詳細仕様については、「Amazon Simple Storage Service Documentation」を参照してください。
  • HTTPSオブジェクト仕様 (NEQTO Bridge/STM32 Discovery/SPRESENSE/Linux)



Abstracts

Methods()/PropertiesSummaryNote
new AWS_S3()AWS_S3インスタンスを生成します。

{AWS_S3} Instance

Method()/PropertySummaryNote
.createXAmzHeaders()AWS APIスタイルのHTTPリクエストパラメータ名を用いたパラメータリストからHTTPヘッダを生成します。
.createHttpHeader()AWS Signature v4仕様の認証ヘッダを生成します。
.put()PUTリクエストでS3バケットにデータを送信します。
.get()GETリクエストでS3バケットからデータを取得します。
.abortRequest()現在進行中のHTTPリクエストを中止します。
.errors無効なキー名(文字列)を含む{Error}オブジェクトの配列
コンストラクタまたは.setConfig()で無効なパラメータが検出された場合に生成されます。
.CONST.VERSIONバージョン(文字列)v2.1.0+



Details

new AWS_S3([config])

AWS_S3インスタンスを生成します。

NameTypeM/ODescriptionNote
configObjectoptionalコンフィグレーション
詳細はconfigを参照してください。
return{AWS_S3}-{AWS_S3} : 生成された{AWS_S3}無効なパラメータが検出された場合、.errorsが生成されます。

config

NameTypeM/ODescriptionNote
regionstringmandatoryS3バケットにアクセスする際に使用するリージョン
accessKeyIdstringmandatoryIAMアクセスキーID
secretKeystringmandatoryIAMシークレットアクセスキー
bucketstringmandatoryS3バケット名
castringmandatoryAWS S3のルートCA証明書
PEM形式の文字列を指定します。改行コードには\nを使用します。
httpTimeoutnumberoptionalHTTPリクエストのタイムアウト値[秒]
0の場合、タイムアウト機能無効となります。
デフォルト値は0となります。
v2.1.0+
timeoutnumber-本パラメータは無視されます。未使用

AWS_S3インスタンス生成時に、コンフィグレーション(config)を設定します。
無効なパラメータが検出された場合、無効なキー名を含む{Error}オブジェクトの配列が.errorsプロパティとして生成されます。パラメータが正常であった場合、.errorsプロパティは削除されます。

var s3 = new AWS_S3({
    region: <value>,
    accessKeyId: <value>,
    secretKey: <value>,
    bucket: <value>,
    ca: <value>
});
if('errors' in s3) {
    //TODO: Handle errors
}

{Error}

NameTypeDescriptionNote
.namestring無効なキーの名前
.messagestringエラーメッセージ

.setConfig(config)

AWS_S3インスタンス生成後に、コンフィグレーション(config)を設定します。
無効なパラメータが検出された場合、無効なキー名を含む{Error}オブジェクトの配列が.errorsプロパティとして生成されます。パラメータが正常であった場合、.errorsプロパティは削除されます。

var s3 = new AWS_S3();
s3.setConfig({
    region: <value>,
    accessKeyId: <value>,
    secretKey: <value>,
    bucket: <value>,
    ca: <value>
});
if('errors' in s3) {
    //TODO: Handle errors
}

Setter Methods

AWS_S3インスタンス生成後に、下記セッターメソッドを使用して個別にコンフィグレーション(config)を設定可能です。
成功した場合、自身のインスタンスが返却されます。無効なパラメータが検出された場合は、{Error}が返却されます。

Setter MethodDescriptionNote
.setRegion(value)regionを設定します。
.setAccessKeyId(value)accessKeyIdを設定します。
.setSecretKey(value)secretKeyを設定します。
.setBucket(value)bucketを設定します。
.setRootCA(value)caを設定します。
.setHttpTimeout(value)httpTimeoutを設定します。v2.1.0+
.setRequestTimeout(value)timeoutを設定します。未使用

.createXAmzHeaders(params)

AWS APIスタイルのHTTPリクエストパラメータ名を用いたパラメータリストからHTTPヘッダを生成します。

本メソッドがサポートしているリクエストパラメータは下記となります。

  • AWS API - PutObject
  • AWS API - GetObject  (v2.1.0+)

それ以外のリクエストパラメータ名が指定された場合は、無変換のまま生成されるHTTPヘッダに継承されます。
尚、bucketおよびkeyはリクエストパラメータ名として使用できません。それらは無視されます。

NameTypeM/ODescriptionNote
paramsobjectmandatoryパラメータリスト
returnobject-HTTPヘッダ

下記は使用例となります。

var params = {
    //<RequestPatameterName>: <value> 
    "Tagging": "example=tag",
    "ACL": "bucket-owner-full-control",
    "ContentLength": 256
};

//Request parameter names are converted to HTTP headers
var headers = s3.createXAmzHeaders(params);

print(JSON.stringify(headers));
//{"x-amz-tagging":"example=tag","x-amz-acl":"bucket-owner-full-control","Content-Length":256}

.createHttpHeader(host,path,method[,bodyToHash[,additionalHeaders]])

AWS Signature v4仕様の認証ヘッダを生成します。
このメソッドは、直接HTTPSオブジェクトを用いてプログラミングする場合に活用できます。

NameTypeM/ODescriptionNote
hoststringmandatoryHTTPホスト
pathstringmandatoryHTTPパス
methodstringmandatoryHTTPメソッド
bodyToHashstringoptionalHTTPボディ
Signed payloadオプションを適用する場合に指定します。指定がない場合(デフォルト)は、Unsigned payloadオプションが適用されます。
additionalHeadersobjectoptional追加x-amz-*ヘッダ
x-amz-*ヘッダを追加指定可能です。
returnobject-認証ヘッダ
{ Authorization: <auth>, x-amz-content-sha256: <contenthash>, x-amz-date: <timestamp>}

.put(path,userHeaders,getBody,callback[,sockTo])

PUTリクエストでS3バケットにデータを送信します。

ホストは${conig.bucket}.s3.amazonaws.comとなります。
尚、認証ヘッダは本メソッド内で生成され、Unsigned payloadオプションが適用されます。

NameTypeM/ODescriptionNote
pathstringmandatoryターゲットリソースへのパスを指定します。
userHeadersobjectmandatoryHTTPリクエストヘッダ(HTTP/1.1およびx-amz-*ヘッダ)を指定します。
「Content-Length」を含める必要があります。
getBodyfunctionmandatory送信データ(body)引き取り時にコールバック処理を実行します。
データがなくなるまで、4KB以下のstringもしくはArrayBufferチャンクでデータを渡し、最後にnullを渡します。
callback(err, resp)functionmandatory処理完了時にコールバック処理を実行します。
コールバック関数の引数で処理結果を通知します。
err: {HttpReqError}, null
resp: {HttpResponse}, null
HTTPリクエストでエラーが発生した場合はerr、HTTPレスポンスが受信できた場合はrespが設定されます。
sockTonumberoptionalHTTPセッションのタイムアウト値[ms]を指定します。
本パラメータはhttps.request()メソッドのsockTo設定値となります。詳しくはHTTPSオブジェクト仕様を参照してください。
v2.1.0+
returnundefined-

.get(path,callback[,isBin[,sockTo]])

GETリクエストでS3バケットからデータを取得します。

ホストは${conig.bucket}.s3.amazonaws.comとなります。
尚、認証ヘッダは本メソッド内で生成され、Unsigned payloadオプションが適用されます。

NameTypeM/ODescriptionNote
pathstringmandatoryターゲットリソースへのパスを指定します。
callback(err, resp)functionmandatoryHTTPレスポンスイベント発生時にコールバック処理を実行します。
err: {HttpReqError}, null
resp: {HttpResponse}, null
HTTPリクエストでエラーが発生した場合はerrが設定され、処理終了となります。HTTPレスポンスが受信できた場合はrespが設定されます。HTTPレスポンスデータは、複数回のコールバックで分割通知されます。処理終了はHTTPレスポンス通知完了フラグで判断します。
isBinbooleanoptionalHTTPレスポンスデータ(resp)の型を指定します。
true: ArrayBuffer
false: string
デフォルト値はfalseとなります。
v2.1.0+
sockTonumberoptionalHTTPセッションのタイムアウト値[ms]を指定します。
本パラメータはhttps.request()メソッドのsockTo設定値となります。詳しくはHTTPSオブジェクト仕様を参照してください。
v2.1.0+
returnundefined-

.abortRequest()

現在進行中のHTTPリクエストを中止します。

NameTypeM/ODescriptionNote
returnundefined-

{HttpReqError}

NameTypeDescriptionNote
.errCodenumberHTTPSリクエストのエラーコード
詳しくはHTTPSオブジェクトのエラーコード表を参照してください。

{HttpResponse}

NameTypeDescriptionNote
.statusCodenumberHTTPレスポンスのステータスコード
.statusMessagestringHTTPレスポンスのステータスメッセージ
.bodystring, nullHTTPレスポンスデータ (Response-Body)
HTTPレスポンス内容やHTTP受信タイミングによって、null(添付データなし)となる場合があります。
.endFlagbooleanHTTPレスポンス通知完了フラグ
.put()メソッド場合、一括通知となるため、本フラグは常にtrueとなります。
.get()メソッドの場合、HTTPレスポンスデータは、複数回のコールバックで分割通知されます。本フラグがtrueとなるまで、レスポンスデータの取り込みを行います。
true: 通知完了(処理終了)
false: 未完了。次のコールバックを待ちます。
v2.1.0+



Usage Examples

すべてのサンプルコードにおいて、以下の共通コードを使用します。

ルートCA証明書がS3エンドポイントに対して適切であることを事前に確認してください。
CA証明書の取得方法については、こちらを参考にしてください。

log.setLevel(0,2); //-1:NONE 0:ERROR 1:WARNING 2:DEBUG 3:TRACE, 0:DISABLE 1:LOG 2:CONSOLE 3:BOTH
log.printLevel(2); //0:DISABLE 1:LOG 2:CONSOLE 3:BOTH

var rootCa = '-----BEGIN CERTIFICATE-----\n...<CA>...\n-----END CERTIFICATE-----';

//TODO: Configuration
var s3 = new AWS_S3({
    region: <value>,
    accessKeyId: <value>,
    secretKey: <value>,
    bucket: <value>,
    ca: rootCa
});
if('errors' in s3) {
    //TODO: Handle errors
    throw new Error("Invalid configuration");
}

Sample 1

S3バケットにデータを送信します。

var path = "/path/to/sample.txt";
var body = "sample text to send to S3";
var headers = s3.createXAmzHeaders({
    "ContentLength": body.length.toString()
});

var busy;
var getBody = function() {
    var temp = body;
    body = null;
    return temp;
};
var callback = function(err, resp) {
    if(err) {
        print("Error!", err.errCode);
    } else {
        print("Response:", resp.body);
        print("Status:", resp.statusCode, resp.statusMessage);
    }
    busy = false;
};

busy = true;
s3.put(path, headers, getBody, callback);
while(busy);
print("Done");

Sample 2

カスタムタグとACLパラメータを加えて、S3バケットにデータを送信します。

var path = "/path/to/sample.txt";
var body = "sample text to send to S3";
var headers = s3.createXAmzHeaders({
    "Tagging": "example=tag", //Requires the s3:PutObjectTagging permission
    "ACL": "bucket-owner-full-control", //Requires the s3:PutObjectAcl permission
    "ContentLength": body.length.toString()
});

var busy;
var getBody = function() {
    var temp = body;
    body = null;
    return temp;
};
var callback = function(err, resp) {
    if(err) {
        print("Error!", err.errCode);
    } else {
        print("Response:", resp.body);
        print("Status:", resp.statusCode, resp.statusMessage);
    }
    busy = false;
};

busy = true;
s3.put(path, headers, getBody, callback);
while(busy);
print("Done");

Sample 3

S3バケットにデータを分割送信します。

var path = "/path/to/sample.txt";
var body = "";
while(body.length < 1024*2) body += "0123456789ABCDEF"; //sample text
var headers = s3.createXAmzHeaders({
    "ContentLength": body.length.toString()
});

var busy;
var chunkSize = 1024; //4KB or less
var index = 0;
var getBody = function() {
    var chunk = body.substring(index, index + chunkSize);
    if(chunk) {
        index = index + chunkSize;
        return chunk;
    }
    return null;
};
var callback = function(err, resp) {
    if(err) {
        print("Error!", err.errCode);
    } else {
        print("Response:", resp.body);
        print("Status:", resp.statusCode, resp.statusMessage);
    }
    busy = false;
};

busy = true;
s3.put(path, headers, getBody, callback);
while(busy);
print("Done");

Sample 4

S3バケットからデータを取得します。

var path = "/path/to/sample.txt";

var busy;
var callback = function(err, resp) {
    if(err) {
        print("Error!", err.errCode);
        busy = false;
    } else {
        print("Response:", resp.body);
        if(resp.endFlag) {
            print("Status:", resp.statusCode, resp.statusMessage);
            busy = false;
        }
    }
};

busy = true;
s3.get(path, callback);
while(busy);
print("Done");


上記に記載されている会社名、製品名は、各社の登録商標または商標です。

Updated: 2024-03-26
← 前次 →
  • Abstracts
    • {AWS_S3} Instance
  • Details
    • new AWS_S3([config])
    • .createXAmzHeaders(params)
    • .createHttpHeader(host,path,method[,bodyToHash[,additionalHeaders]])
    • .put(path,userHeaders,getBody,callback[,sockTo])
    • .get(path,callback[,isBin[,sockTo]])
    • .abortRequest()
    • {HttpReqError}
    • {HttpResponse}
  • Usage Examples
    • Sample 1
    • Sample 2
    • Sample 3
    • Sample 4
NEQTO とはニュースサービスFAQプライバシーポリシー脆弱性開示ポリシー
NEQTO Console
はじめに基本情報管理者専用の操作デバイス管理NEQTO Apps
NEQTO Bridge
NEQTO Bridge ピン配置NEQTO Bridge Wi-Fi ModuleNEQTO Bridge LTE-1 Moduleデバッグログ取得方法イベントメッセージ
APIのドキュメント
APIの利用グローバル APIリージョン APIAPIサービス利用規約
Jigsaw, Inc.
© 2025 JIG-SAW INC.