React Native + Amplify S3 示例
React Native + Amplify S3 Example
我正在寻找一个完整的示例,说明如何在成功将文件名发送到 S3
后 return。
目前我有类似的东西:
uploadImageAsync = async (pickerResult) => {
try {
this.setState({
uploading: true,
})
if (!pickerResult.cancelled) {
const response = await fetch(pickerResult.uri);
const blob = await response.blob();
Storage.put(fileName, blob)
.then(result => console.log(result))
.catch(err => console.log(err))
}
} finally {
this.setState({
uploading: false,
})
}
}
我的 return 结果是我创建的文件名。创建后,我想 return S3 文件名。这可能吗?
因此您实际上不需要在执行放置后将 S3 文件的密钥返回给您,因为它始终具有基于您提供给 "put" 的第三个参数的可预测密钥。
- Public level/omitted 第三个参数:"public/yourFileName"
- 保护级别/{级别:'protected'}:"protected/IdentityId/fileName"
- 私人级别/{级别:'private'}:"private/IdentityId/fileName"
put 函数会自动为您的文件名添加前缀。但是,如果您出于任何原因需要它,您可以获得这样的 "IdentityId" 部分:
Auth.currentCredentials().then(user => user.identityId)
您可以对图像执行 get()
调用以获得签名 url。
Storage.put('profile-picture.jpeg', blob)
.then(result => {
Storage.get('profile-picture.jpeg')
.then(result => {
console.log(result);
})
.catch(err => {
console.error(err);
});
})
.catch(err => {
console.error(err);
});
我正在寻找一个完整的示例,说明如何在成功将文件名发送到 S3
后 return。
目前我有类似的东西:
uploadImageAsync = async (pickerResult) => {
try {
this.setState({
uploading: true,
})
if (!pickerResult.cancelled) {
const response = await fetch(pickerResult.uri);
const blob = await response.blob();
Storage.put(fileName, blob)
.then(result => console.log(result))
.catch(err => console.log(err))
}
} finally {
this.setState({
uploading: false,
})
}
}
我的 return 结果是我创建的文件名。创建后,我想 return S3 文件名。这可能吗?
因此您实际上不需要在执行放置后将 S3 文件的密钥返回给您,因为它始终具有基于您提供给 "put" 的第三个参数的可预测密钥。
- Public level/omitted 第三个参数:"public/yourFileName"
- 保护级别/{级别:'protected'}:"protected/IdentityId/fileName"
- 私人级别/{级别:'private'}:"private/IdentityId/fileName"
put 函数会自动为您的文件名添加前缀。但是,如果您出于任何原因需要它,您可以获得这样的 "IdentityId" 部分:
Auth.currentCredentials().then(user => user.identityId)
您可以对图像执行 get()
调用以获得签名 url。
Storage.put('profile-picture.jpeg', blob)
.then(result => {
Storage.get('profile-picture.jpeg')
.then(result => {
console.log(result);
})
.catch(err => {
console.error(err);
});
})
.catch(err => {
console.error(err);
});