Inhaltsverzeichnis
Frageninhalt
Lösung
Heim Backend-Entwicklung Golang GO AWS SDK s3.GetObjectInput ist kein Typ

GO AWS SDK s3.GetObjectInput ist kein Typ

Feb 08, 2024 pm 10:33 PM
go语言 作用域

GO AWS SDK s3.GetObjectInput 不是类型

php-Editor Yuzai ist bei der Verwendung des AWS SDK der GO-Sprache auf ein Problem gestoßen, das heißt, s3.GetObjectInput ist kein Typfehler. Dieser Fehler tritt häufig auf, wenn die GO-Sprache zum Aufrufen von AWS S3-Diensten verwendet wird. Dies bedeutet, dass die Parameter des Typs GetObjectInput falsch übergeben werden. Es gibt viele Möglichkeiten, dieses Problem zu lösen, einschließlich der Überprüfung, ob die Typdefinition im Code und die Parameterübergabe korrekt sind. Bevor wir dieses Problem lösen, wollen wir zunächst verstehen, um welchen Typ es sich bei GetObjectInput handelt und welche Rolle er im AWS S3-Service spielt.

Frageninhalt

Ich versuche, mit dem go sdk von AWS eine Datei von s3 herunterzuladen und dabei ähnliche Vorgänge wie im von AWS bereitgestellten Beispiel auszuführen: https://docs.aws.amazon.com/sdk-for- go/api /service/s3/

package main

import (
    "context"
    "fmt"
    "io/ioutil"
    "os"
    "path/filepath"

    "github.com/aws/aws-sdk-go/service/s3"
    "github.com/aws/aws-sdk-go/service/s3/s3manager"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"

    "github.com/aws/aws-lambda-go/events"
    "github.com/aws/aws-lambda-go/lambda"
    "github.com/davidbyttow/govips/v2/vips"
)

func handler(ctx context.Context, s3Event events.S3Event) {
    for _, record := range s3Event.Records {
        s3 := record.S3

        sess, err := session.NewSession(&aws.Config{
            Region: aws.String("<REGION>"),
        })
        if err != nil {
            exitErrorf("cannot create s3 session, %v", err)
        }
    
        downloader := s3manager.NewDownloader(sess)

        file, err := os.Create(filepath.Base(s3.Object.Key))

        if err != nil {
            exitErrorf("DownloadFile:::Unable to open file, %v", err)
        }

        defer file.Close()

        numBytes, err := downloader.Download(file,
            &s3.GetObjectInput{
                Bucket: aws.String("<BUCKET>"),
                Key:    aws.String(s3.Object.Key),
            })

        if err != nil {
            exitErrorf("Unable to download item %q, %v", s3.Object.Key, err)
        }

        fmt.Println("Downloaded", file.Name(), numBytes, "bytes")
}
Nach dem Login kopieren

Wenn ich versuche, das Projekt zu erstellen, erhalte ich die Fehlermeldung: “github.com/aws/aws-sdk-go/service/s3”已导入但未使用 Und s3.getobjectinput 不是类型

Ich habe „Go Get on the Used Packages“ und „Go Mod Tidy“ ausgeführt, um meine go.mod-Dateien aufzuräumen. Es scheint vollkommen zufrieden mit der s3manager-Reihe und anderen aws-Paketen zu sein, es beschwert sich nur über s3-Referenzen.

Übersehe ich etwas Einfaches?

Lösung

Importierte Paketegithub.com/aws/aws-sdk-go/service/s3的包名为s3,通过s3 := record.s3ausblenden. Deshalb sehen Sie den Fehler.

Die vorgeschlagene Lösung besteht darin, s3 := record.s3 以选择其他身份。例如,s3entity := record.s3。不要忘记将源代码中的 s3.object.key 替换为 s3entity.object.key zu ändern.

Eine weitere Möglichkeit besteht darin, dem importierten Paket einen anderen Namen zu geben. Zum Beispiel:

import awss3 "github.com/aws/aws-sdk-go/service/s3"
Nach dem Login kopieren

Siehe den Abschnitt „Erklärungen und Geltungsbereich“ der Spezifikation:

Declaration bindet einen Bezeichner ungleich Null an eine Konstante, einen Typ, einen Typparameter, eine Variable, eine Funktion, ein Label oder ein Paket. ...

go verwendet Blöcke für die lexikalische Festlegung des Gültigkeitsbereichs:

  • Der Umfang der vordeklarierten Bezeichner ist der Universumsblock.
  • Gibt an, dass der Gültigkeitsbereich eines Bezeichners für eine Konstante, einen Typ, eine Variable oder eine Funktion (aber keine Methode), die auf der obersten Ebene (außerhalb einer Funktion) deklariert wird, der Paketblock ist.
  • Der Paketnamenbereich eines importierten Pakets ist der Dateiblock der Datei, die die Importdeklaration enthält.
  • Der Gültigkeitsbereich eines Bezeichners, der einen Methodenempfänger, Funktionsparameter oder eine Ergebnisvariable darstellt, ist der Funktionskörper.
  • Gibt an, dass der Bereich des durch einen Funktionstypparameter oder Methodenempfänger deklarierten Bezeichners nach dem Funktionsnamen beginnt und am Ende des Funktionskörpers endet.
  • Der Bereich der Bezeichner, die Typparameter eines Typs darstellen, beginnt nach dem Typnamen und endet am Ende der Typspezifikation.
  • Der Gültigkeitsbereich eines innerhalb einer Funktion deklarierten Konstanten- oder Variablenbezeichners beginnt am Ende der constspec oder varspec (shortvardecl für kurze Variablendeklarationen) und endet am Ende des innersten enthaltenden Blocks.
  • Der Gültigkeitsbereich eines in einer Funktion deklarierten Typbezeichners beginnt beim Bezeichner in der Typenspezifikation und endet am Ende des innersten enthaltenden Blocks.

In Blöcken deklarierte Bezeichner können in inneren Blöcken neu deklariert werden. Wenn ein inner-deklarierter Bezeichner im Gültigkeitsbereich liegt, stellt er die durch die innere Deklaration deklarierte Entität dar .

Siehe auch Einfuhrerklärung.

Das obige ist der detaillierte Inhalt vonGO AWS SDK s3.GetObjectInput ist kein Typ. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Apr 02, 2025 pm 02:06 PM

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Apr 02, 2025 pm 04:12 PM

Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Apr 02, 2025 pm 12:57 PM

Zwei Möglichkeiten, Strukturen in der GO -Sprache zu definieren: Der Unterschied zwischen VAR- und Typ -Schlüsselwörtern. Bei der Definition von Strukturen sieht die Sprache oft zwei verschiedene Schreibweisen: Erstens ...

Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Apr 02, 2025 pm 04:54 PM

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Apr 02, 2025 pm 02:03 PM

Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

Warum ist es notwendig, Zeiger zu verabschieden, wenn sie GO- und Viper -Bibliotheken verwenden? Warum ist es notwendig, Zeiger zu verabschieden, wenn sie GO- und Viper -Bibliotheken verwenden? Apr 02, 2025 pm 04:00 PM

Go Zeigersyntax und Probleme bei der Verwendung der Viper -Bibliothek bei der Programmierung in Go -Sprache. Es ist entscheidend, die Syntax und Verwendung von Zeigern zu verstehen, insbesondere in ...

Warum werden alle Werte das letzte Element, wenn sie für den Bereich in der GO -Sprache verwendet werden, um Scheiben zu durchqueren und Karten zu speichern? Warum werden alle Werte das letzte Element, wenn sie für den Bereich in der GO -Sprache verwendet werden, um Scheiben zu durchqueren und Karten zu speichern? Apr 02, 2025 pm 04:09 PM

Warum bewirkt die Kartendiseration in Go alle Werte zum letzten Element? In Go -Sprache begegnen Sie, wenn Sie einige Interviewfragen konfrontiert sind, häufig Karten ...

See all articles