如何解决24小时后,所有容器和Blob操作均失败,并显示授权错误
使用azure-storage 8.4.0 Java库,我正在访问一个容器并列出/从中上传blob,但是24小时后,所有操作开始失败,并出现以下异常...
注意:这一切都是从计划的作业中发生的。
import { StatusBar } from 'expo-status-bar'
import React,{ useState,useEffect } from 'react'
import { StyleSheet,Text,TouchableOpacity,View } from 'react-native'
import { AntDesign } from '@expo/vector-icons'
import { FontAwesome } from '@expo/vector-icons'
let intervalId = null
export default function App() {
const [timer,setTimer] = useState(1500),[running,setRunning] = useState(false)
const reset = () => {
setTimer(1500)
setRunning(false)
clearInterval(intervalId)
}
const playPauseIcon = () => {
if (!running) {
return ( <FontAwesome name="play" style={styles.icons} /> )
} else {
return ( <FontAwesome name="pause" style={styles.icons} /> )
}
}
const playPause = () => {
if (!running) {
setRunning(true)
run()
} else {
setRunning(false)
clearInterval(intervalId)
}
}
const run = () => {
intervalId = setInterval(countDown,1000)
}
const countDown = () => {
setTimer(timer => timer - 1)
}
const clockify = () => {
//console.log("timer in clock " + timer)
const minutes = Math.floor(timer / 60),seconds = timer % 60
if (seconds < 10 && minutes < 10) {
return "0" + minutes + ":" + "0" + seconds;
} else if (seconds < 10) {
return minutes + ":" + "0" + seconds;
} else {
return minutes + ":" + seconds;
}
}
useEffect(() => {
console.log("timer in useEffect " + timer)
if (timer < 1496) {
// vibrate
console.log("vibrate")
clearInterval(intervalId)
}
})
return (
<View style={styles.container}>
<View style={styles.controls}>
<TouchableOpacity onPress={playPause} style={styles.reset}>{playPauseIcon()}</TouchableOpacity>
<TouchableOpacity style={styles.reset} onPress={reset}>
<FontAwesome name="undo" style={styles.icons} />
</TouchableOpacity>
</View>
<Text style={styles.status}>Time Remaining</Text>
<Text style={styles.timeLeft}>{clockify()}</Text>
<StatusBar style="auto" />
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,backgroundColor: '#fff',alignItems: 'center',justifyContent: 'center',},status: {
fontSize: 30,paddingTop: 20
},timeLeft: {
fontSize: 30
},controls: {
flexDirection: "row",alignItems: "center"
},icons: {
fontSize: 25,color: "black",paddingLeft: 10
},reset: {
paddingTop: 15,paddingRight: 5,paddingLeft: 5
}
});
我的Linux VM在WestUS 2中,存储帐户在EastUS中。我们从https://storage.azure.com/检索令牌。任何人都知道为什么这种例外情况会在24小时之后发生?
解决方法
您可以通过powershell中的以下命令检查是否存在限制访问令牌寿命的策略:
Connect-AzureAD
Get-AzureADPolicy
运行命令后,它将显示策略列表。找到类似OrganizationDefaultPolicyScenario
的策略名称,并通过其ID获取它:
Get-AzureADPolicy -Id {id} | fl
据我所知,令牌的最大使用寿命为1天。因此,可能不允许我们无限期地重复使用令牌。
,我没有刷新客户端。我将创建一次客户端,然后尝试无限期地重用它。我想那是禁忌。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。