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.key
を s3entity.object.key
に忘れずに置き換えてください。
もう 1 つのオプションは、インポートされたパッケージに別の名前を指定することです。例えば:### リーリー
仕様書の「宣言とスコープ」セクションを参照してください :
宣言は、null 以外の識別子を定数、型、型パラメーター、変数、関数、ラベル、またはパッケージにバインドします。 ...go 字句スコープにブロックを使用する:
ブロック内で宣言された識別子は、内部ブロック内で再宣言できます。内部宣言された識別子がスコープ内にある場合、それは内部宣言によって宣言されたエンティティ を表します。
「インポート宣言」以上がGO AWS SDK s3.GetObjectInput は型ではありませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。