ホームページ >バックエンド開発 >Golang >GO AWS SDK s3.GetObjectInput は型ではありません

GO AWS SDK s3.GetObjectInput は型ではありません

PHPz
PHPz転載
2024-02-08 22:33:19962ブラウズ

GO AWS SDK s3.GetObjectInput 不是类型

php Xiaobian Yuzai は、GO 言語の AWS SDK を使用しているときに問題が発生しました。つまり、s3.GetObjectInput は型エラーではありません。このエラーは、GO 言語を使用して AWS S3 サービスを呼び出すときによく発生し、GetObjectInput タイプのパラメータが正しく渡されていないことを意味します。この問題を解決するには、コード内の型定義やパラメーターの受け渡しが正しいかどうかを確認するなど、さまざまな方法があります。この問題を解決する前に、まず GetObjectInput のタイプと AWS S3 サービスにおけるその役割を理解しましょう。

質問内容

aws の go SDK を使用して s3 からファイルをダウンロードしようとしています。aws が提供する例で行われているのと同様の操作を実行します: https://docs.aws.amazon .com /sdk-for-go /api/service/s3/

リーリー

プロジェクトをビルドしようとすると、次のエラーが表示されます。 「github.com/aws/aws-sdk-go/service/s3」はインポートされていますが、使用されていません そして s3.getobjectinput は型ではありません

使用されているパッケージに go get を実行し、go.mod ファイルを整理するために go mod tiny を実行しました。 s3manager ラインやその他の aws パッケージには完全に満足しているようですが、s3 参照については文句を言っているだけです。

何か単純なことが欠けているでしょうか?

解決策

インポートされたパッケージ github.com/aws/aws-sdk-go/service/s3 のパッケージ名は s3 です。 s3 := Record.s3 によって隠されています。そのため、エラーが表示されます。

提案される解決策は、s3 := Record.s3 を変更して別の ID を選択することです。たとえば、s3entity := Record.s3。ソース コード内の s3.object.keys3entity.object.key に忘れずに置き換えてください。

もう 1 つのオプションは、インポートされたパッケージに別の名前を指定することです。例えば:### リーリー

仕様書

の「宣言とスコープ」セクションを参照してください :

宣言は、null 以外の識別子を定数、型、型パラメーター、変数、関数、ラベル、またはパッケージにバインドします。 ...

go 字句スコープにブロックを使用する:

    事前宣言された識別子のスコープはユニバース ブロックです。
  • トップレベル (関数の外側) で宣言された定数、型、変数、または関数 (メソッドではない) の識別子のスコープがパッケージ ブロックであることを示します。
  • インポートされたパッケージのパッケージ名の範囲は、インポート宣言を含むファイルのファイル ブロック です。
  • メソッド レシーバー、関数パラメーター、または結果変数を表す識別子のスコープは関数本体です。
  • 関数型パラメーターまたはメソッド レシーバーによって宣言された識別子の範囲が関数名の後に始まり、関数本体の最後で終わることを示します。
  • 型の型パラメーターを表す識別子の範囲は、型名の後に始まり、typespec の終わりで終わります。
  • 関数内で宣言された定数または変数識別子のスコープは、constspec または varspec (短い変数宣言の shortvardecl) の終わりから始まり、最も内側の包含ブロックの終わりで で終わります。 関数内で宣言された型識別子の範囲は、typespec 内の識別子から始まり、最も内側の包含ブロックの終わりで終わります。

ブロック内で宣言された識別子は、内部ブロック内で再宣言できます。内部宣言された識別子がスコープ内にある場合、それは内部宣言によって宣言されたエンティティ を表します。

「インポート宣言」

も参照してください。

以上がGO AWS SDK s3.GetObjectInput は型ではありませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。