Amazon CloudFront funktioniert nicht in React NativeIOS

Programmierung für iOS
Guest
 Amazon CloudFront funktioniert nicht in React Native

Post by Guest »

Sie haben zwei Möglichkeiten, dieses Problem zu lösen:

1. Verwenden Sie AWS Amplify oder AWS SDK für den Browser

Wenn Sie diese Aktion im Browser ausführen müssen, besteht eine Lösung darin, AWS Amplify oder eine Kombination davon zu verwenden Dienste, die eine browserbasierte Interaktion ermöglichen, ohne dass eine private Schlüsselverwaltung im Browser erforderlich ist.
Das Signieren von URLs sollte jedoch im Allgemeinen nicht direkt im clientseitigen Code erfolgen, da dadurch Ihre privaten Schlüssel offengelegt werden Schlüssel, was ein Sicherheitsrisiko darstellt. Stattdessen sollten Sie diesen Vorgang serverseitig durchführen und dann die signierte URL an den Client übergeben.

Code: Select all

 const configureAWS = () => {
const {AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION} = config;

AWS.config.update({
accessKeyId: AWS_ACCESS_KEY_ID,
secretAccessKey: AWS_SECRET_ACCESS_KEY,
region: AWS_REGION,
});
};

export const AwsDownloadWithSignedUrlVideo = async (
bucketName,
key,
Expires = 60,
) => {
try {
configureAWS(); // Ensure AWS is configured

const {
CLOUDFRONT_URL,
CLOUDFRONT_KEY_PAIR_ID,
CLOUDFRONT_PRIVATE_KEY_PATH,
} = Config;

const cloudFrontUrl = `${CLOUDFRONT_URL}/${key}`;
const cloudFront = new AWS.CloudFront.Signer(
CLOUDFRONT_KEY_PAIR_ID,
CLOUDFRONT_PRIVATE_KEY_PATH,
);

const signedUrlCloudFront = cloudFront.getSignedUrl({
url: cloudFrontUrl,
expires: Math.floor(Date.now() / 1000) + Expires,
});

return signedUrlCloudFront;
} catch (error) {
console.error('Error generating signed URL for video from S3:', error);
return null;
}
};

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post